Se puede utilizar un ListView de esta manera:
<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>
- que le da un panel horizontal y las barras de desplazamiento adecuadas para el desplazamiento horizontal.
Tanto ListView como GridView pueden causar problemas cuando obtiene artículos más grandes. Creo que, de forma predeterminada, los artículos pueden tener un tamaño basado en el tamaño del primer elemento agregado. Puede establecer ese tamaño manualmente:
<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>
- tenga en cuenta que todos los artículos deben ser del mismo tamaño.
- también la nota - He cambiado esta respuesta para reemplazar un StackPanel
con un ItemsStackPanel
que es virtualizado, por lo que debe obtener un mejor rendimiento y menor uso de memoria para grandes conjuntos de datos, pero FAVOR - no crean diseños con grandes listas desplazables horizontalmente. Pueden ser una buena solución en algunos escenarios muy limitados, pero en la mayoría de los casos romperán muchos buenos patrones de interfaz de usuario y harán que su aplicación sea más difícil de usar.
Aunque es una respuesta sobre WPF, esto funcionó para mí en mi aplicación WinRT: http://stackoverflow.com/questions/359217/how-do-i-make-wpf-listview-items-repeat-horizontally- like-a-horizontal-scrollba – KallDrexx