【问题标题】:Change how items are displayed WPF list box更改项目的显示方式 WPF 列表框
【发布时间】:2009-10-09 19:00:01
【问题描述】:

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

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

有没有办法通过修改ItemsPanelTemplate 来获得这种效果,还是我需要扩展ListBox 类本身?无论哪种情况,我该怎么办?

感谢您的帮助!

【问题讨论】:

    标签: c# wpf listbox itemspaneltemplate


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的帮助!这基本上解决了它,但上面的代码“原样”仍然只是创建一个长的垂直列表。如上所述,让它创建一个网格的技巧是将此属性添加到 ListBox 标记:ScrollViewer.VerticalScrollBarVisibility="Disabled "
    猜你喜欢
    • 2015-01-25
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    相关资源
    最近更新 更多