使用VisualStateManager控制XAML网格结构

时间:2012-11-19 11:39:14

标签: xaml winrt-xaml grid-layout

我正在编写一个WinRT应用程序,需要在快照视图中更改其布局。在常规视图中,详细信息显示在以下结构的网格中:

MainGrid:包含2行,2列(让我们称之为M11,M12,M21,M22)

DetailGrid:占用MainGrid最右边的列和上行,包含1行,2列相等,所以布局如下所示: M12包含水平分层的D1和D2

在快照视图中,我希望重新定义DetailGrid,使其具有单列和2行: M12包含垂直分层的D1和D2

如果我不关心列宽,我可以使用StackPanel而不是Grid来显示细节,只需在捕捉模式下将StackPanel方向从水平更改为垂直。但是D1和D2必须在标准模式下使用所有可用空间并且具有相同的大小,因此我通过Grid ColumnDefinition控制它们。但是网格定义不是使用VisualStateManager轻松控制的东西。

您认为管理此类布局的最佳方式是什么?

提前致谢

1 个答案:

答案 0 :(得分:0)

网格定义很难控制,但我发现更改网格中的Grid.RowSpan或Grid.RowColumn跨度应该能够在快照视图中执行所需的操作