Нужен совет по настройке шаблона ListBox

У меня есть ListBox значений CheckBox, количество значений меняется время от времени, это может быть 10, 15, 100 и т. Д.

Я хотел бы настроить способ отображения значений. В настоящее время, если у меня есть 50 значений, они все отображаются вертикально, только один столбец.

Мне бы хотелось, чтобы в одном столбце было максимум 10 значений, и я могу прокручивать по горизонтали для просмотра значений в других столбцах.

Я попытался использовать ItemsPanelTemplate с горизонтальной ориентацией StackPanel, но все значения теперь находятся в 1 строке.

Пожалуйста посоветуй.

Спасибо!

1 ответ

Решение

Вы можете попробовать изменить панель, используемую вашим ListBox к WrapPanel вместо. Установите его Orientation в Vertical, тогда измерьте высоту ListBox поэтому он помещает 10 элементов в каждый "столбец" перед началом нового столбца.

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

Если вы хотите 10 элементов в каждом столбце, но не хотите явно устанавливать высоту ListBox тогда единственное решение, о котором я могу думать, - это написание Panel,

Другие вопросы по тегам