需要有关自定义 ListBox 模板的建议

Need advice on customizing ListBox template

我有一个 CheckBox 值的列表框,值的数量不时变化,可以是 10、15、100 等。

我想自定义值的显示方式。目前,如果我有 50 个值,它们都是垂直显示的,只有一列。

我希望 1 列最多有 10 个值,并且我能够水平滚动以查看其他列的值。

我尝试将 ItemsPanelTemplate 与水平方向的 StackPanel 一起使用,但是现在所有值都在 1 行中。

请指教

谢谢!

您可以尝试将 ListBox 使用的面板更改为 WrapPanel。将其 Orientation 设置为 Vertical,然后调整 ListBox 的高度,使其在开始新列之前适合每个 "column" 中的 10 个项目。

<ListBox Height="..."
    ScrollViewer.HorizontalScrollBarVisibility="Auto"
    ScrollViewer.VerticalScrollBarVisibility="Disabled">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel Orientation="Vertical" />
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
</ListBox>

如果您希望每列中有 10 个项目但又不想显式设置 ListBox 的高度,那么我能想到的唯一解决方案是编写自定义 Panel.