WPF - Scrolling Listbox in an Expander
I have an Expander
that I want to have a ListBox
in. When the I open the Expander
, the ListBox
just expands off the screen (rather than expanding开发者_运维百科 to fill what is available and then scrolling).
Here is my XAML:
<DockPanel Margin="266.25,0,455,12" Name="dockPanel1">
<StackPanel>
<Expander Header="expander1" Name="expander1" Width="150" HorizontalAlignment="Left">
<Grid>
<Label>Testing</Label>
<ScrollViewer>
<ListBox Name="lstBox" FontSize="14" SelectionChanged="lstBox_SelectionChanged" />
</ScrollViewer>
</Grid>
</Expander>
<Expander Header="expander2" Name="expander2" Width="150" HorizontalAlignment="Left">
<Grid >
</Grid>
</Expander>
</StackPanel>
</DockPanel>
When Expander1
is opened then it just expands to the size of the ListBox
(off the screen). If I put a size on the grid (Height="275"
), then it does not resize with the window.
I want it to stretch to the size of the window, but no more. Is there a way to do that?
You need to set the Height property of ScrollViewer otherwise it will be the same size as it's child. Here is some updated XAML:
<DockPanel>
<StackPanel>
<Expander Header="expander1" Width="150" HorizontalAlignment="Left">
<StackPanel>
<Label>Testing</Label>
<ScrollViewer Height="75">
<ListBox>
</ListBox>
</ScrollViewer>
</StackPanel>
</Expander>
<Expander Header="expander2">
</Expander>
</StackPanel>
</DockPanel>
精彩评论