Ответ 1
Вы можете использовать ListView следующим образом:
<ListView
Height="500"
VerticalAlignment="Center"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Disabled"
ScrollViewer.HorizontalScrollMode="Enabled"
ScrollViewer.VerticalScrollMode="Disabled"
ScrollViewer.ZoomMode="Disabled"
SelectionMode="None">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsStackPanel
Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
- это дает горизонтальную панель и правые полосы прокрутки для горизонтальной прокрутки.
Как ListView, так и GridView могут вызывать проблемы при получении больших элементов. Я думаю, что по умолчанию элементы могут быть отсортированы по размеру первого добавленного элемента. Вы можете установить этот размер вручную, хотя:
<ListView.ItemContainerStyle>
<Style
TargetType="ListViewItem"><!-- note - for GridView you should specify GridViewItem, for ListBox - ListBoxItem, etc. -->
<Setter
Property="Height"
Value="200" /> <!-- this is where you can specify the size of your ListView items -->
<Setter
Property="Width"
Value="350" />
</Style>
</ListView.ItemContainerStyle>
- обратите внимание, что все элементы должны быть одного размера.
- также обратите внимание - я изменил этот ответ, заменив StackPanel
на ItemsStackPanel
, который виртуализирован, поэтому он должен повысить производительность и снизить использование памяти для больших наборов данных, но PLEASE - не создавать макеты с большими горизонтально прокручиваемыми списками. Они могут быть хорошим решением в некоторых очень ограниченных сценариях, но в большинстве случаев они сломают много хороших шаблонов пользовательского интерфейса и упрощают использование вашего приложения.