更改项目显示方式WPF列表框

时间:2009-10-09 19:00:01

标签: c# wpf listbox itemspaneltemplate

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

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

有没有办法通过修改ListBox来获得这种效果,还是需要扩展ItemsPanelTemplate类本身?在任何一种情况下,我将如何得到它?

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

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

<ListBox>
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel Orientation="Vertical"/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
</ListBox>