关于c#:在WPF中调整窗口大小时如何获取列表视图以自动调整高度

How to get List-views to automatically adjust height when the window is re-sized in WPF

我在获取两个ListView以将其高度调整到包含窗口时遇到麻烦。我在它们之间使用了GridSplitter。当我拖动GridSplitter时,我希望一个ListView缩小而另一个要增长。

这是精简的xaml代码。

1
2
3
4
5
6
7
8
9
10
<Grid x:Name="Gridthing">
        <Grid.RowDefinitions>
            <RowDefinition Height="150"/>
            <RowDefinition Height="10"/>
            <RowDefinition Height="150"/> <!--bottom-->
        </Grid.RowDefinitions>
            <ListView  Name="Things1" Grid.Row="0"/>
            <GridSplitter Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="LightGray"></GridSplitter>
            <ListView  Name="Things2" Grid.Row="2"/>
</Grid>

但是,在此示例中,无论窗口设置的大小如何,底部的ListView始终高150。

现在我已经可以听到一千个声音在尖叫,使用" *"或" auto"作为底部网格行的高度。

但是,这有一个更严重的问题。现在,底部的ListView扩展通过了窗口,并且没有滚动条,从而使窗口中看不到的任何内容都不可见。

我正在寻找一种方法,允许两个ListView占据窗口之间的所有空间,并在其之间使用GridSplitter并始终显示滚动条。

感谢您的帮助。


问题是我的网格位于主窗口内的堆栈面板内的userconrol中。我必须将堆栈面板换成主窗口中的网格,然后它才能完美运行。谢谢dkozl。