在WPF网格独立宽度(Independent width in a WPF Grid)

2019-08-05 19:14发布

我有2行和WPF 2列的网格。 我想的是,列的宽度是独立的每一行。 我试图“自动”,但没有成功。 这里是为了解释一个画面:

我怎样才能做到这一点使用网格?

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

*这些是没有类型的编辑,可能需要一些调整。



Answer 2:

两个网格?

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


文章来源: Independent width in a WPF Grid