2011-03-09 7 views
12

J'ai une grille:WPF: ScrollViewer dans la grille

<Grid.RowDefinitions> 
     <RowDefinition Height="100"/> 
     <RowDefinition Height="*"/> 
</Grid.RowDefinitions> 

La deuxième ligne est avec ScrollViewer:

<ScrollViewer VerticalScrollBarVisibility="Auto" MinHeight="400" Grid.Row="1"> 
      <ItemsControl ItemsSource="{Binding SelectedUserControls}"/> 
    </ScrollViewer> 

Je veux la deuxième rangée pour être avec défilement si nécessaire, Mais le défilement n'est jamais visible, événement si les contrôles d'éléments sont plus grands que l'écran.

Comment puis-je faire apparaître le parchemin en cas de besoin?

+1

Qu'est-ce qui enveloppe votre grille? – ChrisF

Répondre

4

EDIT:

Essayez de supprimer 'MinHeight = 400' et je parie que cela fonctionne !!

Vous avez un MinHeight sur votre ItemsControl de 400. Donc jusqu'à ce que vous ayez assez d'éléments pour prendre tous les 400, vous ne verrez pas votre barre de défilement. Je devine que le conteneur contenant votre grille (ou la hauteur explicite sur votre grille est inférieure à 400), et vous avez assez d'éléments pour être trop grand pour ce conteneur, mais pas assez d'éléments pour remplir le MinHeight de votre ItemsControl.

Réponse originale: Je viens de rencontrer une application de test avec 30 éléments qu'il (assez pour remplir le MinHeight) et il semble fonctionner très bien:

<Window x:Class="TestApp11.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:l="clr-namespace:TestApp11" 
    Title="Window1" Loaded="Window_Loaded" Height="600" Width="800"> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="100"/> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 
     <ScrollViewer VerticalScrollBarVisibility="Auto" MinHeight="400" Grid.Row="1"> 
      <ItemsControl> 
       ... 
       <ListBoxItem Content="Item 30" /> 
       ... 
      </ItemsControl> 
     </ScrollViewer> 
    </Grid> 
</Window> 

Est-ce que votre récipient contenant votre grille ont une explicite hauteur?