我如何使ListView中的ListItems可以水平流动.默认行为是垂直的,但是我想以水平流显示列表,因此可以呈现为全景图.
你可以这样使用ListView:
<ListView Height="500" VerticalAlignment="Center" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollMode="Enabled" ScrollViewer.VerticalScrollMode="Disabled" ScrollViewer.ZoomMode="Disabled" SelectionMode="None"> <ListView.ItemsPanel> <ItemsPanelTemplate> <ItemsStackPanel Orientation="Horizontal" /> </ItemsPanelTemplate> </ListView.ItemsPanel>
– 给它一个水平面板和右侧的ScrollBars水平滚动.
当您收到较大的项目时,ListView和GridView都可能会导致问题.我认为默认情况下,项目可能会根据添加的第一个项目的大小来确定大小.您可以手动设置该大小:
<ListView.ItemContainerStyle> <Style TargetType="ListViewItem"><!-- note - for GridView you should specify GridViewItem,for ListBox - ListBoxItem,etc. --> <Setter Property="Height" Value="200" /> <!-- this is where you can specify the size of your ListView items --> <Setter Property="Width" Value="350" /> </Style> </ListView.ItemContainerStyle>
– 请注意,所有项目都需要相同的大小.
– 还要注意 – 我已经改变了这个答案,用一个虚拟化的ItemsStackPanel替换了一个StackPanel,所以它应该能够获得更好的性能并降低大型数据集的内存使用,但是请不要用大的水平滚动来创建布局名单.它们可能在一些非常有限的场景中可能是一个很好的解决方案,但在大多数情况下,它们会打破许多好的UI模式,并使您的应用程序更难使用.