使用VisualStateManager控制XAML网格结构

使用VisualStateManager控制XAML网格结构,xaml,winrt-xaml,grid-layout,Xaml,Winrt Xaml,Grid Layout,我正在编写WinRT应用程序,需要在快照视图中更改其布局。在常规视图中,详细信息显示在以下结构的网格中: 主网格:包含2行2列(我们称它们为M11、M12、M21、M22) DetailGrid:占据主网格最右边的一列和最上面的一行,包含1行、2列相等的内容,因此布局如下所示: M12包含水平分层的D1和D2 在快照视图中,我希望重新定义DetailGrid,使其具有一列和两行: M12包含垂直分层的D1和D2 如果我不关心列宽,我可以使用StackPanel而不是Grid来显示细节,并简单地以

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

主网格:包含2行2列(我们称它们为M11、M12、M21、M22)

DetailGrid:占据主网格最右边的一列和最上面的一行,包含1行、2列相等的内容,因此布局如下所示: M12包含水平分层的D1和D2

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

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

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


提前感谢

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

从描述中可以看出,有点难以可视化,也许mspaint对您所追求的东西的快速图像解释可以更具描述性?我建议: