如何通过Code Behind在另一列前面添加列?

时间:2013-04-15 07:08:37

标签: c# wpf grid wpf-controls

当我在XAML时,说我有2个列定义:

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

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

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

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

答案 2 :(得分:0)

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

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