如何通过代码后置在另一列的前面添加列

本文关键字:一列 添加 前面 代码 何通过 | 更新日期: 2023-09-27 18:09:05

当我在XAML中,假设我有2个列定义:

<Grid.ColumnDefinition>
    <ColumnDefinition>
    <ColumnDefinition>
</Grid.ColumnDefinition>

我想在代码后面的第0位添加一个额外的列。但是当我添加列时,它会自动嵌入为第二个位置列。

如何通过代码后置在另一列的前面添加列

你需要得到你的网格,然后插入到列定义,而不是'添加'。

 Grid layoutRoot = new Grid();
 layoutRoot.ColumnDefinitions.Insert(0, new ColumnDefinition() { Width = new GridLength(0, GridUnitType.Star) });

我认为你是编码如下,我认为是正确的。

Grid1.ColumnDefinitions.Insert(0, new ColumnDefinition());

还有一件事你需要做的是加上1的孩子在网格中像这样,否则,旧的项目将放在第一列;所以效果就像你刚才看到的。

foreach (UIElement item in Grid1.Children)
{
    var columnIndex = Grid.GetColumn(item);
    Grid.SetColumn(item, columnIndex + 1);
}

这是实现这一目标的简单方法。

Maingrid.ColumnDefinitions。Insert(0, new ColumnDefinition());