我有一个显示ListBox
的WPF窗口。我已经更改了ListBox
的项目模板,以便列表框显示可以选择的矩形项目。
现在我想修改ListBox
的{{1}},以便项目以网格显示,而不是垂直或水平列表。具体来说,我希望第一个项目位于ItemsPanelTemplate
的右上角,然后是第二个项目位于其下方,第三个项目位于下方,直到下一个项目的高度将使项目列高于高度ListBox
本身。此时,它应该直接在添加的第一个项目的右侧开始第二列。如果组合的所有列的总宽度大于ListBox
的宽度,则应显示水平滚动条。
有没有办法通过修改ListBox
来获得这种效果,还是需要扩展ItemsPanelTemplate
类本身?在任何一种情况下,我将如何得到它?
感谢您的帮助!
答案 0 :(得分:4)
我没有对此进行测试,但我怀疑您可以通过将ListBox
使用的默认面板换成WrapPanel
来获得所需的效果:
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>