2013-08-23 14 views
10

Ho il sotto ItemsControl che avvolge perfettamente gli oggetti ma non ha una barra di scorrimento verticale, quindi non posso vedere gli elementi avvolti. Come posso visualizzare la barra di scorrimento?ItemsControl mancante barra di scorrimento verticale

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

risposta

19

ItemsControl di default non va a capo ItemsPresenter in ScrollViewer quindi bisogna farlo manualmente in questo modo:

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

Molto strano ... ho provato 20x prima e non ha funzionato e ora lo fa ... Grazie! – touyets

+1

Ho capito il problema: se inserisco un valore per la visibilità della barra di scorrimento orizzontale dello scrollviewer, allora non funziona correttamente – touyets

4

avvolgere il vostro ItemsControl in un ScrollViewer controllo.

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

ricordarsi di mettere gli attributi Grid.Column="0" Grid.Row="1" nel ScrollViewer invece che nella vostra ItemControl.

0

Usa ScrollViewer e imposta la proprietà "VerticalScrollBarVisibility" vero.

< ScrollViewer VerticalScrollBarVisibility = "Auto">

Qui la vostra ItemsControl

</ScrollViewer>