0

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

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

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

4

3 回答 3

1

您需要掌握您的网格,而不是插入列定义而不是“添加”。

 Grid layoutRoot = new Grid();
 layoutRoot.ColumnDefinitions.Insert(0, new ColumnDefinition() { Width = new GridLength(0, GridUnitType.Star) });
于 2013-04-15T07:12:30.207 回答
0

我认为您正在编写以下代码,我认为这是正确的。

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

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

foreach (UIElement item in Grid1.Children)
{
    var columnIndex = Grid.GetColumn(item);
    Grid.SetColumn(item, columnIndex + 1);
}
于 2013-04-15T07:17:37.217 回答
0

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

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

于 2013-04-15T07:19:08.567 回答