2012-01-27 79 views
17

我有3行的网格布局。我如何将第3行分成2列。如何将网格行分成两列?

<Grid.RowDefinitions> 
    <RowDefinition Height="0.75*"/> 
    <RowDefinition Height="0.25*"/> 
    <RowDefinition Height="36"/> 
</Grid.RowDefinitions> 

回答

38

两种方法可以做到这一点:

  • 使用嵌套布局。在第三行放置另一个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> 
    
  • 坚持一个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>