【问题标题】:C# WPF Grid Rows height stretchC# WPF 网格行高度拉伸
【发布时间】:2018-01-31 14:46:35
【问题描述】:

我正在尝试创建一个随窗口大小动态增长的 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>

【问题讨论】:

  • 你试过&lt;Grid VerticalAlignment="Stretch"&gt;吗?
  • 我认为另一个网格是适合您目的的正确工具
  • 不工作是什么意思?
  • @Sasha 是的,这就是我理解的原因,并且他提供的 xaml 已经填满了整个窗口。这就是为什么我问什么不起作用。当他想让所有三个部分都垂直时,他不需要列;)
  • @JulianHerbel 因为需要在 Listviews 中绑定数据:ItemsSource={Binding YourCollection}

标签: c# wpf grid height row


【解决方案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>

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

提示

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

【讨论】:

    猜你喜欢
    • 2010-12-24
    • 2013-10-21
    • 1970-01-01
    • 2011-08-25
    • 2012-11-05
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多