ItemsControl отсутствует вертикальная полоса прокрутки
У меня есть элемент ItemsControl, который отлично переносит элементы, но у него нет вертикальной полосы прокрутки, поэтому я не могу видеть обернутые элементы. Как я могу отобразить полосу прокрутки?
<ItemsControl x:Name="tStack" Grid.Column="0" Grid.Row="1"
ItemsSource="{Binding Shows.View}"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
BorderThickness="0.5">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Left"
VerticalAlignment="Top"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Viewbox HorizontalAlignment="Left" Height="250">
<Controls1:MyShowsUserControl Padding="10"/>
</Viewbox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Ответы
Ответ 1
ItemsControl
по умолчанию не обертывает ItemsPresenter
в ScrollViewer
, поэтому вам нужно сделать это вручную:
<ScrollViewer Grid.Column="0" Grid.Row="1">
<ItemsControl x:Name="tStack" ... >
<!-- .... -->
</ItemsControl>
</ScrollViewer>
Ответ 2
Оберните ItemsControl
в элементе управления ScrollViewer
.
<ScrollViewer VerticalScrollBarVisibility="Auto">
<ItemsControl ...
</ScrollViewer>
Не забудьте указать атрибуты Grid.Column="0" Grid.Row="1"
в ScrollViewer, а не в ItemControl.
Ответ 3
Используйте ScrollViewer и установите для свойства "VerticalScrollBarVisibility" значение true.
< ScrollViewer VerticalScrollBarVisibility = "Авто" >
Здесь ваш ItemsControl
</ScrollViewer>