4

我有一个 WPF 窗口,它显示一个ListBox. 我更改了ListBox的项目模板,以便列表框显示可以选择的矩形项目。

现在我想修改ListBox'sItemsPanelTemplate以便项目显示在网格中,而不是垂直或水平列表中。具体来说,我希望第一个项目进入右上角,ListBox然后第二个项目位于其下方,第三个项目位于其下方,直到下一个项目的高度会使项目列高于其ListBox自身的高度。此时,它应该直接在添加的第一个项目的右侧开始第二列。如果所有列组合的总宽度大于宽度,ListBox则应出现水平滚动条。

有没有办法通过修改ItemsPanelTemplate或者我需要扩展ListBox类本身来获得这种效果?在任何一种情况下,我该怎么办?

谢谢你的帮助!

4

1 回答 1

4

我没有对此进行测试,但我怀疑您可以通过将使用的默认面板换成ListBoxa来获得所需的效果WrapPanel

<ListBox>
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel Orientation="Vertical"/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
</ListBox>
于 2009-10-09T20:15:02.890 回答