Что вам нужно сделать, это изменить ListBox
ItemsPanel
, чтобы он содержал WrapPanel
. Таким образом, ваши предметы будут отображаться слева направо, а затем переходить к следующей строке (я думаю, это то, что вы хотите). Вам также необходимо отключить горизонтальную полосу прокрутки в списке.
<ListBox ItemsSource="{Binding}" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
...your other stuff like the ItemTemplate
</ListBox>
Другая вещь, о которой стоит подумать, это то, что вы используете ListBox
, потому что хотите, чтобы они могли выбирать каждый элемент?
Если нет, то ItemsControl
будет заменой один на один, которая будет легче и не поддерживает выбор элемента.