2010-11-30 3 views
2

J'ai une listbox à l'intérieur d'un panneau de pile à l'intérieur d'une bordure dans une application Silverlight et chaque fois que j'ajoute quelque chose à la liste, sa hauteur augmente donc la barre de défilement n'est jamais utilisée de l'élément frontière. J'ai essayé de définir explicitement l'attribut height de la listbox, de la bordure et du panneau de pile et ça va encore plus loin.Listbox prolongeant la page

Voici mon code:

<Border x:Name="articlePane"> 
       <StackPanel> 
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Top"> 
         <Button Content="Latest" MouseEnter="HandleRollInAnimation" MouseLeave="HandleRollOutAnimation" /> 
         <Button Content="Pending" MouseEnter="HandleRollInAnimation" MouseLeave="HandleRollOutAnimation" /> 
         <Button Content="Done" MouseEnter="HandleRollInAnimation" MouseLeave="HandleRollOutAnimation" /> 
        </StackPanel> 
        <ListBox x:Name="articleList" Margin="5" Background="Transparent" ItemsSource="{Binding}" 
          ScrollViewer.VerticalScrollBarVisibility="Visible"> 
         <ListBox.ItemTemplate> 
          <DataTemplate> 
           <StackPanel Orientation="Vertical" VerticalAlignment="Top" HorizontalAlignment="Center"> 
            <Image x:Name="articleImage" /> 
            <TextBlock x:Name="articleTitle" Text="{Binding Path=Title}" FontSize="18" FontWeight="Bold" 
               Margin="5"/> 
            <TextBlock x:Name="articleDate" Text="{Binding Path=Date}" FontSize="14" Foreground="Gray" 
               Margin="5"/> 
           </StackPanel> 
          </DataTemplate> 
         </ListBox.ItemTemplate> 
        </ListBox> 
       </StackPanel> 
      </Border> 

Répondre

3

J'ai le sentiment que le StackPanel ne cesse sur l'ajout de la hauteur pour toujours. Je pense que dans ce cas, vous feriez mieux d'avoir une disposition de grille à l'intérieur de votre frontière. Placez le Button StackPanel dans une rangée définie en hauteur, et le ListBox dans une ligne autosizing * height. De cette façon, la grille restera dans les limites de votre formulaire.

+0

Merci, ça a bien fonctionné – electricsheep