2010-11-30 10 views
2

Ich habe eine Listbox innerhalb eines Stack-Panel innerhalb einer Grenze in einer Silverlight-Anwendung und wenn ich etwas in die Listbox hinzufügen wird es in der Höhe erhöht, so dass die Bildlaufleiste nie verwendet wird und es erstreckt sich über die Grenzen des Randelements. Ich habe versucht, das Höhenattribut der Listbox, des Rahmens und des Stack-Panels explizit zu setzen, und es geht immer noch darüber hinaus.Listbox erstreckt sich von der Seite

Hier ist mein 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> 

Antwort

3

ich das Gefühl, dass der Stackpanel hält nur Höhe immer auf Hinzufügen. Ich denke in diesem Fall wäre es besser, wenn Sie ein Grid-Layout in Ihrem Border haben. Platzieren Sie das Button StackPanel in einer Höhe definierten Zeile und die ListBox in einer Autosizing * Höhenzeile. Auf diese Weise wird Grid innerhalb der Grenzen Ihrer Form bleiben.

+0

Danke, das hat super funktioniert – electricsheep

Verwandte Themen