需要有关自定义 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
.
我有一个 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
.