在 WPF 中重新调整 window 大小时如何让列表视图自动调整高度

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

我无法让两个 ListView 将它们的高度调整到包含 window。我在它们之间使用 GridSplitter。当我拖动 GridSplitter 时,我希望一个 ListView 缩小,一个扩大。

这是精简的 xaml 代码。

<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 高,无论 window 设置的是什么尺寸。

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

然而,这有一个更糟糕的问题。底部的 ListView 现在扩展通过了 window 并且没有滚动条,呈现不在 window 中的任何内容不可见。

我正在寻找一种方法,允许两个 ListView 占据 window 中的所有 space,中间有一个 GridSplitter,并且始终显示滚动条。

感谢您的帮助。

问题是我的网格位于主 window 内堆栈面板内的用户控件中。我不得不将 stackpannel 换成主 window 中的网格,然后它表现完美。谢谢 dkozl.