2013-08-23 2 views
10

У меня есть элемент ItemsControl, который отлично переносит элементы, но у него нет вертикальной полосы прокрутки, поэтому я не вижу обернутые элементы. Как я могу отобразить полосу прокрутки?ItemsControl missing vertical scrollbar

<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> 

ответ

19

ItemsControl по умолчанию не завернуть ItemsPresenter в ScrollViewer, так что вы должны сделать это вручную следующим образом:

<ScrollViewer Grid.Column="0" Grid.Row="1"> 
    <ItemsControl x:Name="tStack" ... > 
     <!-- .... --> 
    </ItemsControl> 
</ScrollViewer> 
+0

Очень странно ... Я пробовал 20x раньше, и это не сработало, и теперь он делает ... Спасибо! – touyets

+1

Я понял, что проблема: если я ввожу значение для горизонтальной видимости прокрутки в scrollviewer, то он не работает должным образом – touyets

4

Оберните ItemsControl в ScrollViewer управления.

<ScrollViewer VerticalScrollBarVisibility="Auto"> 
    <ItemsControl ... 
</ScrollViewer> 

Не забудьте поставить Grid.Column="0" Grid.Row="1" атрибуты в ScrollViewer, а не в вашем ItemControl.

0

Используйте ScrollViewer и установить свойство «VerticalScrollBarVisibility» истинный.

< ScrollViewer VerticalScrollBarVisibility = "Авто">

Вот ваш ItemsControl

</ScrollViewer>

Смежные вопросы