在WinRT中包装的GridView方向

我正在用c#开发一个WinRT应用程序,我使用GridView来呈现我的项目。

我希望我的项目水平排列然后(当达到最大宽度时)下一项应添加到新行( 简单: 只能看到垂直滚动条 )。

不幸的是,我当前的xaml只能在一行中添加水平项目(带有水平滚动条)

       

如果您不想允许水平滚动,则需要使用ListView而不是GridView

来自MSDN:

使用ListView显示垂直滚动的数据集合。 要显示水平滚动的集合,请使用GridView

但是如果你想保持包装行为,你需要使用WrapGrid作为ItemsPanel :

        

GridView的默认ItemsPanelTemplate包含一个Orientation =“Vertical”的WrapGrid:它堆叠垂直并滚动水平。

如果将“方向”更改为“水平”,它将堆叠为水平,但由于某种原因不会滚动。 您可以通过在GridView上设置ScrollViewer.VerticalScrollMode =“Enabled”来解决这个问题(而不是在WrapGrid上!)。

例: