3

我正在尝试在堆栈面板中插入多个矩形,但我不断收到错误消息“元素已经是另一个元素的子元素。”。如果我使用画布,也会发生同样的事情。

例子:

List<Rectangle> recList = new List<Rectangle>();

...在列表中添加一些矩形

StackPanel stack = new StackPanel();

foreach(var item in recList)
     stack.Children.Add(item); // get error here on 2nd item trying to add

uiStackPanel.Children.Add(stack); // declared in XAML

我希望能够在水平方向上动态插入矩形。根据互联网,我应该能够做到这一点(至少手动)但是......

怎么办,怎么办?:)

4

1 回答 1

1

好像您不止一次添加同一个矩形。

如果您需要添加不同的矩形,则代码如下所示:

var list = new List<Rectangle>();
for (int i = 0; i < 10; i++)
{
    list.Add(new Rectangle());
}

var panel = new StackPanel();
foreach (var rectangle in list)
{
    panel.Children.Add(rectangle);
}

此代码有效。

于 2011-06-08T00:11:37.680 回答