2013-08-23 26 views
10

Mam poniżej ItemsControl, który doskonale opakowuje przedmioty, ale nie ma pionowego paska przewijania, więc nie widzę zapakowanych przedmiotów. Jak mogę wyświetlić pasek przewijania?ItemsControl brakujący pionowy pasek przewijania

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

Odpowiedz

19

ItemsControl domyślnie nie zawijać ItemsPresenter w ScrollViewer więc trzeba to zrobić ręcznie tak:

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

Bardzo dziwne ... Próbowałem go 20x wcześniej i to nie działa i teraz robi ... Dziękuję Ci! – touyets

+1

Wyjaśniłem problem: jeśli wprowadzę wartość dla poziomej widoczności paska przewijania, to nie działa poprawnie – touyets

4

Wrap ItemsControl w A ScrollViewer kontrolować.

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

Pamiętaj, aby umieścić atrybuty Grid.Column="0" Grid.Row="1" w ScrollViewer zamiast w ItemControl.

0

Używaj ScrollViewer i ustawić właściwość "VerticalScrollBarVisibility" true.

< ScrollViewer VerticalScrollBarVisibility = "auto">

tutaj swoje ItemsControl

</ScrollViewer>

Powiązane problemy