我正在开发一个需要自己的自定义文件管理器/资源管理器的程序。 这很典型:我有一个用户控件(名为FileItem),它包含一个Image(缩略图)和一个Label(文件名)。
我遇到的问题是布局;我需要它在网格布局中(所以我使用统一网格钉住它),就像你在图标视图上的Windows资源管理器一样:
我还需要能够选择ListBox完美的文件或多个文件等。 问题是我不能同时使用它们。
所以我试图在ListBox中插入一个Uniform Grid。布局很棒,但我无法选择文件(好像ListBox不在那里)。
快速谷歌搜索建议只使用ListView,但它没有做好工作,因为它有固定的列和行(并且在我正在处理的程序中,大小会改变)。
那么如何才能完全实现ListBox和Uniform Grid的两个功能呢?
编辑(重要): 如果你还需要这个外观并想要一个答案,我实际上推荐使用WrapPanel而不是Uniform Grid。它会自动允许您根据内容动态更改行数。
答案 0 :(得分:4)
要将ListBox的ItemsPanel
设置为UniformGrid,您可以这样做:
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid IsItemsHost="True" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBoxItem Content="Grid Item 1" />
<ListBoxItem Content="Grid Item 2" />
<ListBoxItem Content="Grid Item 3" />
<ListBoxItem Content="Grid Item 4" />
<ListBoxItem Content="Grid Item 5" />
<ListBoxItem Content="Grid Item 6" />
<ListBoxItem Content="Grid Item 7" />
<ListBoxItem Content="Grid Item 8" />
<ListBoxItem Content="Grid Item 9" />
<ListBoxItem Content="Grid Item 10" />
</ListBox>
您不应该选择此选项,并且会根据需要显示项目。