WrapPanel
имеет, наряду с StackPanel
, свойство Orientation
, которое по умолчанию равно Vertical
.Таким образом, ваш список должен обернуться (при условии, что у вас достаточно места под рукой), если ваш ItemsPanelTemplate
выглядит следующим образом:
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
О ScrollViewer:
Желаемое поведение должно быть достигнуто путем определенияэто как следует (не проверено, хотя, и я опустил все для этого примера ненужные вещи):
<ScrollViewer HorizontalAlignment="Stretch">
<ItemsControl MinWidth="550" Width="{Binding ActualWidth, Mode=OneWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ScrollViewer}}}" />
</ScrollViewer>