我正在使用带有ItemTemplate的ListView,如下所示:
<Window.Resources>
<DataTemplate x:Key="ItemTemplate">
<WrapPanel Orientation="Horizontal">
<Image Width="50" Height="50" Stretch="Fill" Source="{Binding Cover}"/>
<Label Content="{Binding Title}" />
</WrapPanel>
</DataTemplate>
</Window.Resources>
但封面并没有像Windows资源管理器窗口那样填满屏幕。
我该怎么做?它们只是在我的版本中垂直堆叠。
alt text http://www.functionx.com/visualc/applications/images/explorer1.gif
答案 0 :(得分:108)
尝试使用WrapPanel作为ListView的项目面板并禁用水平滚动条:
<ListView ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
...
</ListView>
更新:itowlson建议这个解释使事情更清楚:ItemTemplate指定每个项目应该如何呈现。它对物品的布局方式没有影响。相比之下,ItemsPanel确实指定了布局。
此外,您可能希望所有项目都显示相同的大小。您可以在本文中找到如何执行此操作:http://joshsmithonwpf.wordpress.com/2008/09/06/synchronizing-the-width-of-elements-in-an-itemscontrol/