1

我在 WPF 中有一个 2 行 2 列的网格。我希望每行的列宽都是独立的。我试过“自动”,但没有成功。这是一张图片以便解释:

在此处输入图像描述

如何使用网格完成此操作?

4

2 回答 2

1

如果您必须使用网格布局,那么您有几个选择:

选项 1:将每一行设为单列,然后在您想要独立列的每一行中嵌套一个网格:

XAML

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>

    <TextBlock Text="AAAAAAAAAAAAAAAAAAAA" />

    <Grid Grid.Row="1">
      <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
      </Grid.ColumnDefinitions>

      <TextBlock Text="BBBBBBB"">
      <TextBlock Grid.Column="1" Text="CCCCCCC" />
    </Grid>
</Grid>

选项 2:在行中使用 ColumnSpan:

XAML

<Grid>
  <Grid.RowDefinitions>
    <RowDefinition />
    <RowDefinition />
  </Grid.RowDefinitions>

  <Grid.ColumnDefinitions>
    <ColumnDefinition />
    <ColumnDefinition />
  </Grid.ColumnDefinitions>

      <TextBlock Grid.ColumnSpan="2" Text="AAAAAAAAAAAAAAAAAAAA" />
      <TextBlock Grid.Row="1" Text="BBBBBBB"">
      <TextBlock Grid.Row="1" Grid.Column="1" Text="CCCCCCC" />
    </Grid>
</Grid>

*这些是在没有编辑器的情况下输入的,可能需要一些调整。

于 2013-01-06T19:01:27.660 回答
0

两个格子?

<StackPanel Width="277">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <TextBlock Text="AAAAAAAAAAAAAAAAAAAA" Grid.Row="0" Grid.Column="0"/>            
    </Grid>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <TextBlock Text="BBBBBBB" Grid.Row="0" Grid.Column="0"/>
        <TextBlock Text="CCCCCCC" Grid.Row="0" Grid.Column="1"/>
    </Grid>
</StackPanel>
于 2013-01-06T19:05:18.763 回答