如何让Grid最后一行的TextBlock跨两列布局?
问题解答
可以实现,只需要给最后一行的TextBlock添加Grid.ColumnSpan属性并设置为2即可,这样它就会占据Grid的两列宽度,避免其他元素被不必要地拉伸。
完整示例代码
<Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <!-- 前几行元素示例 --> <TextBlock Grid.Row="0" Grid.Column="0" Text="第一行第一列" /> <TextBlock Grid.Row="0" Grid.Column="1" Text="第一行第二列" /> <TextBlock Grid.Row="1" Grid.Column="0" Text="第二行第一列" /> <TextBlock Grid.Row="1" Grid.Column="1" Text="第二行第二列" /> <TextBox Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Text="第三行跨两列输入框" /> <!-- 最后一行的TextBlock,设置跨两列 --> <TextBlock Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Text="最后一行跨两列的文本内容" /> </Grid>
关键说明
Grid.ColumnSpan属性用于指定元素在Grid中跨越的列数,设置为2后,TextBlock会占据Grid定义的全部两列空间。- 无需修改原有Grid的列、行定义,仅通过该属性就能实现跨列布局,彻底解决其他元素被不合理拉伸的问题。
内容的提问来源于stack exchange,提问作者Durinko
相关产品推荐
相关产品推荐

