2011-04-14 67 views
1

我已經創建了三頁: - 第1頁主頁,第2頁肖像和第3頁景觀。因爲我的GUI組件佈局在兩種模式下都完全不同,所以我必須爲不同的方向分別放置兩個頁面。 支持主要方向是PortraitOrLandscape,第2頁是肖像,第3頁是風景。現在根據主頁的方向調用下一頁的方向。如何處理windows phone 7中的方向?

例如:主頁面處於橫向模式,則將打開的下一頁面爲第3頁橫向。現在我想如果用戶切換到肖像模式,那麼頁面2肖像將打開。 我可以從主頁面切換到頁面3或頁面2,但我怎樣才能從頁面2切換到頁面3反之。

回答

3

對不同的方向使用不同的頁面是真的不好的想法,並且只會導致用戶的顯着更慢的用戶體驗。

處理此問題的更好方法是在方向更改時使用VisualStateManager在不同佈局之間切換。如果您的用戶界面如此明顯不同,那麼您始終可以創建兩個不同的用戶控件並切換其狀態更改的可見性。

AndrásVelvárt有一個great post,涵蓋了這個主題,幷包括一個你可以使用的行爲。

+0

你是真的。我嘗試了兩個用戶控件,一個用於橫向,另一個用於縱向,根據方向添加到一個視圖頁面上,但現在如何在查看頁面上獲取用戶控件的事件。假設我在用戶控件上有按鈕,現在我想在查看頁面上獲取該事件。 – rubyraj 2011-04-14 11:11:51

+0

完全取決於您試圖實現的目標。這就是Model-View-ViewModel(MVVM)模式與命令和事件聚合一起派上用場的地方。 – 2011-04-14 12:32:44

0

您可以處理OrientationChanged事件並在那裏導航到任何合適的頁面。請注意,您必須遵守Back按鈕的規則,否則您的應用程序將不會被商店接受。

更好的方法可能是爲手機的不同方向設計完全不同的頁面樣式。這樣你就可以堅持商店的規則。