Ответ 1
Попробуйте использовать WrapPanel в качестве панели элементов списка ListView и отключите горизонтальную полосу прокрутки:
<ListView ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
...
</ListView>
Обновление: itowlson предлагает это объяснение, чтобы сделать вещи более ясными: ItemTemplate указывает, как каждый элемент должен быть визуализирован. Это не влияет на то, как выкладываются элементы. ItemsPanel, напротив, определяет макет.
Кроме того, вы можете захотеть, чтобы все элементы отображались одинакового размера. Вы можете узнать, как это сделать из этой статьи: http://joshsmithonwpf.wordpress.com/2008/09/06/synchronizing-the-width-of-elements-in-an-itemscontrol/