c# – WPF – 在扩展器中滚动列表框

我有一个扩展器,我希望有一个ListBox.当我打开Expander时,ListBox只是扩展屏幕(而不是扩展以填充可用的内容,然后滚动).

这是我的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>

当Expander1打开时,它只会扩展到ListBox的大小(在屏幕外).如果我在网格上放置一个大小(高度=“275”),那么它不会随窗口大小调整.

我想让它伸展到窗户的大小,但不多了.有没有办法做到这一点?

最佳答案 您需要设置ScrollViewer的Height属性,否则它将与它的子项大小相同.这是一些更新的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>
点赞