我正在c#开发一个WinRT应用程序,我正在使用GridView来呈现我的项目.
我想让我的项目水平排列,然后(达到最大宽度)下一个项目应该添加到新行(简单地说:只有垂直滚动条可以看到).
不幸的是,我当前的xaml只能在一行中添加水平的项目(带有一个水平滚动条)
<GridView x:Name="GridChildItem" ItemContainerStyle="{StaticResource NonTickGridViewItem}" VerticalContentAlignment="Stretch" ItemTemplate="{StaticResource CustomChildItemTemplete}" SelectionMode="Single" IsItemClickEnabled="True" ItemClick="gridViewChild_ItemClick_1" Margin="0,40,0" Height="Auto" Background="{StaticResource DropDownMenuBackColor}" ScrollViewer.IsHorizontalScrollChainingEnabled="False" ScrollViewer.IsVerticalScrollChainingEnabled ="True" VerticalAlignment="Top"> <GridView.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal" Margin="20,0" /> </ItemsPanelTemplate> </GridView.ItemsPanel> </GridView>
解决方法
如果您不想允许水平滚动,则需要使用ListView而不是GridView,
Use a ListView to display a collection of data that scrolls
vertically. To display a collection that scrolls horizontally,use a
GridView.
但是,如果要保持包装行为,则需要使用WrapGrid作为ItemsPanel:
<ListView> <ListView.ItemsPanel> <ItemsPanelTemplate> <WrapGrid Orientation="Horizontal" /> </ItemsPanelTemplate> </ListView.ItemsPanel> </ListView>