2015-08-28 43 views
-2

我想讓頁面中的網格在縱向模式下具有單列,並且在橫向模式下具有兩列。當設備處於橫向模式時,其中一些內容應移至第二列。我試圖做到這一點,但不能。如何在WinRT中製作動態網格佈局?

我正在做代碼背後的一切。生成網格,添加子元素等等。當方向改變時,我銷燬當前的佈局並創建一個新的佈局。這種方法的問題是,任何輸入的數據都將消失。這是一個龐大的代碼,不可能放在這裏。我希望這種佈局更改會自動發生。所以,輸入的任何數據在方向更改後都會保留。

任何幫助,將不勝感激。

+0

後至今 – Abhishek

+0

你可以使用'WrapGrid'您已經嘗試代碼 – tao

回答

0

訣竅是有一個網格,適應兩種狀態。您可以使用VisualStates將不同的Grid.Row,Grid.Column,Grid.RowSpan和Grid.ColumnSpan值分配給控件。這是使用Blend完成的,並且在XAML中是聲明式的。你給每個國家一個名字。在代碼中,您可以使用VisualStateManager檢測窗口的大小更改以觸發不同的狀態。

您也可以在沒有VisualState的情況下執行此操作。在這種情況下,在SizeChanged的事件處理程序中,您必須自己爲所有控件設置適當的值。

在Windows 10 UWP中,使用RelativePanel可以簡單得多。您可以使用網格更靈活地定位控件。

馬丁