如何在代码后面更改VirtualizingStackPanel的方向?

时间:2014-06-11 18:16:06

标签: c# windows gridview windows-8 windows-store-apps

我正在尝试向包含GridView的{​​{1}}页面添加纵向支持,该页面使用VirtualizingStackPanel作为其ItemsPanelTemplate。我的想法是,当方向发生变化时,我可以更改Orientation的{​​{1}}属性,以纵向和水平方向垂直滚动。但是,由于VirtualizingStackPanel用作模板,因此我无法在后面的代码中按名称直接访问它。

有没有办法达到我的目的?

我可以复制VirtualizingStackPanel(或使用GridView)和Visual States来适当地显示/隐藏它们,但我不想重复这么多代码。

2 个答案:

答案 0 :(得分:1)

使用VisualTreeHelper挖掘GridView's可视化树并找到面板。

答案 1 :(得分:0)

更改方向时会出现某种错误。

var zoomedInStackpanel = itemGridView.ItemsPanelRoot as VirtualizingStackPanel;
zoomedInStackpanel.Orientation = Orientation.Vertical;

我放弃并使用了两个GridView。每个方向一个