È possibile utilizzare un controllo ListView in questo modo:
<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>
- che gli conferisce un pannello orizzontale e le barre di scorrimento a destra per lo scorrimento orizzontale.
Sia ListView che GridView possono causare problemi quando si ottengono oggetti più grandi. Penso che, per impostazione predefinita, gli elementi possano essere ridimensionati in base alle dimensioni del primo elemento aggiunto. È tuttavia possibile impostare tale dimensione 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>
- tutti gli articoli devono avere le stesse dimensioni.
- anche notare - ho cambiato questa risposta per sostituire un StackPanel
con una ItemsStackPanel
che è virtualizzato, quindi dovrebbe ottenere migliori prestazioni e utilizzo della memoria inferiore per grandi insiemi di dati, ma FAVORE - non creare layout con grandi elenchi scorrevoli orizzontalmente. Potrebbero essere una buona soluzione in alcuni scenari molto limitati, ma nella maggior parte dei casi interromperanno molti buoni schemi dell'interfaccia utente e renderanno l'applicazione più difficile da utilizzare.
fonte
2012-07-05 13:49:17
Anche se è una risposta a WPF, questo ha funzionato per me nella mia app WinRT: http://stackoverflow.com/questions/359217/how-do-i-make-wpf-listview-items-repeat-horizontally- like-a-horizontal-scrollba – KallDrexx