如何将网格行拆分为两列?

GAN*_*ANI 19 wpf grid-layout

我有3行的网格布局.如何将第3行拆分为2列.

<Grid.RowDefinitions>
    <RowDefinition Height="0.75*"/>
    <RowDefinition Height="0.25*"/>
    <RowDefinition Height="36"/>
</Grid.RowDefinitions>
Run Code Online (Sandbox Code Playgroud)

Joe*_*ite 40

有两种方法可以做到:

  • 使用嵌套布局.将另一Grid行放在第三行,并在该子网格中有两列.

    <Grid>
        <Grid.RowDefinitions> ... </Grid.RowDefinitions>
        <ThingInFirstRow Grid.Row="0" />
        <ThingInSecondRow Grid.Row="1" />
        <Grid Grid.Row="2">
            <Grid.ColumnDefinitions>
                <ColumnDefinition />
                <ColumnDefinition />
            </Grid.ColumnDefinitions>
            <ThingInLowerLeft Grid.Column="0" />
            <ThingInLowerRight Grid.Column="0" />
        </Grid>
    </Grid>
    
    Run Code Online (Sandbox Code Playgroud)
  • 坚持使用一个Grid,给它两列,并使前两行中的东西跨越两列使用ColumnSpan.

    <Grid>
        <Grid.RowDefinitions> ... </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <ThingInFirstRow Grid.Row="0" Grid.ColumnSpan="2" />
        <ThingInSecondRow Grid.Row="1" Grid.ColumnSpan="2" />
        <ThingInLowerLeft Grid.Row="2" Grid.Column="0" />
        <ThingInLowerRight Grid.Row="2" Grid.Column="1" />
    </Grid>
    
    Run Code Online (Sandbox Code Playgroud)