3

我正在开发一个需要自己的自定义文件管理器/资源管理器的程序。这很典型:我有一个用户控件(名为 FileItem),它包括一个图像(缩略图)和一个标签(文件名)。

我遇到的问题是布局;我需要它在网格布局中(所以我使用统一网格来钉住它),就像您在图标视图中时的 Windows 资源管理器一样:

Windows资源管理器

我还需要能够选择 ListBox 完美执行的文件或多个文件等。问题是我不能同时使用两者。

所以我尝试在 ListBox 中插入一个统一网格。布局很棒,但我无法选择文件(好像 ListBox 不存在一样)。

一个快速的谷歌搜索建议只使用 ListView,但它做得不好,因为它有固定的列和行(并且在我正在处理的程序中大小会改变)。

那么如何才能同时实现 ListBox 和 Uniform Grid 的功能呢?

编辑(重要): 如果你也需要这个外观并想要一个答案,我实际上推荐 WrapPanel 而不是 Uniform Grid。它将自动允许您根据内容动态更改行数。

4

1 回答 1

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>

您不应该对此有选择问题,并且这些项目将按照您的需要显示。

于 2012-10-14T10:41:42.270 回答