我想在一个更大的容器列中嵌套一组列。我本打算使用网格,但我愿意接受建议。我希望结果如下所示:第1行第1列和第2行第1列包含子列1a,1b,1c和1d。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Name="row0" Height="35"></RowDefinition>
<RowDefinition Name="row1" Height="20"></RowDefinition>
<RowDefinition Name="row2" Height="35"></RowDefinition>
<RowDefinition Name="row3" Height="35"></RowDefinition>
<RowDefinition Name="row4" Height="35"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Name="col0" Width="75"></ColumnDefinition>
<ColumnDefinition Name="col1" Width="400"></ColumnDefinition>
<ColumnDefinition Name="col2" Width="75"></ColumnDefinition>
</Grid.ColumnDefinitions>
答案 0 :(得分:2)
只需添加另一个网格并将其添加到父容器上的某个网格单元格即可。 (如果嵌套是您想要的方式)
<Grid Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="1" Grid.RowSpan="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
</Grid>
答案 1 :(得分:2)
嵌套网格确实有效,但如果您有动态内容,则ColumnSpan
会保持不同列的排列。
在下面的示例中,我为中间部分创建了三个新列。 然后对于像第0行col 1这样的列,我只是告诉它跨越4列
<Grid>
<Grid.RowDefinitions>
<RowDefinition Name="row0" Height="35" />
<RowDefinition Name="row1" Height="20" />
<RowDefinition Name="row2" Height="35" />
<RowDefinition Name="row3" Height="35" />
<RowDefinition Name="row4" Height="35" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Name="col0" Width="75" />
<ColumnDefinition Name="col1" Width="75" />
<ColumnDefinition Name="col2" Width="125" />
<ColumnDefinition Name="col3" Width="125" />
<ColumnDefinition Name="col4" Width="75" />
<ColumnDefinition Name="col5" Width="75" />
</Grid.ColumnDefinitions>
<TextBox Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="4" />
<TextBox Grid.Row="1" Grid.Column="1" />
<TextBox Grid.Row="1" Grid.Column="2" />
<TextBox Grid.Row="2" Grid.Column="0" />
<TextBox Grid.Row="2" Grid.Column="4" />
<TextBox Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="4" />
</Grid>
答案 2 :(得分:1)
我建议只使用一个网格并在row0col1,row3col1和row4col1的内容上定义Grid.ColumnSpan="4"
,而不是嵌套网格。