C# WPF 网格行高度拉伸

C# WPF Grid Rows height stretch

我正在尝试创建一个随 window 大小动态增长的 WPF 视图。 我的示例代码显示了三个。

第一个要固定高度

第二个和第三个大小相同,并且始终是整个 window。

不幸的是,它不起作用。我究竟做错了什么? DockPanel 是否适合我的目的?

<Grid >
    <Grid.RowDefinitions>
        <RowDefinition Height="200"/>
        <RowDefinition Height="1*"/>
        <RowDefinition Height="1*"/>
    </Grid.RowDefinitions>

    <DockPanel Grid.Row="0">
        <!-- Labels and Buttons -->
    </DockPanel>

    <DockPanel Grid.Row="1">
        <ListView Margin="5"/>
    </DockPanel>

    <DockPanel Grid.Row="2">
        <ListView Margin="5"/>
    </DockPanel>
</Grid>

因为无法将此信息放入评论中。

您的布局仍然符合您的要求。 我设置了一些背景颜色来显示它。对我来说,这是一个简单的技巧来检查我的布局是否像我想要的那样展开。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="200" />
        <RowDefinition Height="1*" />
        <RowDefinition Height="1*" />
    </Grid.RowDefinitions>

    <DockPanel Grid.Row="0"
               Background="Yellow">
        <!-- Labels and Buttons -->
    </DockPanel>

    <DockPanel Grid.Row="1"
               Background="Aqua">
        <ListView Margin="5"
                  Background="Gray" />
    </DockPanel>

    <DockPanel Grid.Row="2"
               Background="Beige">
        <ListView Margin="5"
                  Background="Bisque" />
    </DockPanel>
</Grid>

如果您在 ListView 中看不到任何数据,那不是因为布局。您必须检查您的绑定。

提示

我建议您使用 BorderGrid 而不是 DockPanel,因为您不需要 DockPanel 提供的功能。