C#WPF Grid Rows高度伸展

时间:2017-08-23 06:46:22

标签: c# wpf grid height row

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

第一个应具有固定的高度。

第二个和第三个应该是相同的大小,并且总是在整个窗口。

不幸的是,它不起作用。我究竟做错了什么? 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>

1 个答案:

答案 0 :(得分:1)

因为这些信息无法发表评论。

您的布局仍然可以执行您想要的操作。 我设置了一些背景颜色来显示它。对我来说,这是一个简单的技巧,可以检查我的布局是否像我想要的那样扩展。

<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>

Example

如果您在ListView中看不到任何数据,则不会因为布局问题。你必须检查你的绑定。

提示

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