在StackPanel中的矩形

3

我正在尝试在 StackPanel 中插入多个矩形,但是我一直收到错误提示“元素已经是另一个元素的子元素”。如果使用 Canvas 也会出现相同的情况。

例如:

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

我希望能够动态地在水平方向插入矩形。

根据互联网上的信息,我应该可以这样做(至少手动可以),但是...

怎么办呢? :)


1
你能展示一下填充列表的代码吗? - Alex Aza
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);
}

这段代码有效。


嗨,@Alex Aza 谢谢,解决了! - judehall
2
@viktorb - 你好,viktorb。如果Alex的回答对你有用,那么你可以将其标记为答案,这样其他人就清楚地知道你的问题已经解决 :) - keyboardP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接