2013-05-07 63 views
0

我正在開發Windows應用商店的Win8應用程序。我想克服的障礙是如何處理應用程序可以顯示的不同方式。WPF佈局更改(填充,完整,捕捉)

目前,我的主要頁面是LayoutAwarePage所以它的邏輯來處理不同的視覺狀態。但是,我的問題是更多的如何使我的頁面根據其狀態呈現不同。

我想,一開始,你基本上創建了一個佈局應用程序支持的每個狀態。但是,看起來XAML的VisualStateManager部分只是對設計進行零星修改(隱藏元素,更改對齊)的區域。

我與有許多列和行來組織我的控制網格工作,並在全屏看起來很大。但是,這在捕捉狀態下根本不起作用,因爲我的大多數控件都隱藏在屏幕之外。我當然可以添加一個ScrollViewer控件,但這對用戶來說基本上是一種破解和可用性噩夢。

感謝您的任何見解!

+0

通常,您將擁有完全獨立的快照和全屏狀態佈局。 – mydogisbox 2013-05-07 01:17:56

+0

一個全新的頁面? – Killnine 2013-05-07 01:22:05

+0

使用可視狀態管理器來顯示/隱藏UI的各個部分。 – mydogisbox 2013-05-07 01:28:31

回答

1

這可能是您的應用程序本身不適合於搶購視圖。您可以簡單地顯示說明這一點的消息/圖像。或者,考慮只顯示最重要的列。

標準MS方法似乎是垂直的貨物更換水平定向控制 - 也許一個ListView什麼的會更好看。如果您有一個控件用於快照,另一個用於全屏,您可能會發現代碼更易於閱讀。

不完全是關係到你的問題,但混合的作品非常好,XAML,讓您操作網格或顯示相關的控制。

+0

爲將來的任何人闡述一點:VisualStateManager是你如何改變視圖狀態之間的佈局(填充,快照等)。然而,你大多隻是有你的原始視圖來處理。當然,你的動畫可能會變得更加複雜,但它意味着像@ pm_2所說的那樣做:修改屬性並將水平導向的控件更改爲更加垂直的方向。 – Killnine 2013-05-10 15:26:46