Прямоугольники в StackPanel - PullRequest
3 голосов
/ 08 июня 2011

Я пытаюсь вставить несколько прямоугольников в панель стека, но получаю сообщение об ошибке «Элемент уже является дочерним элементом другого элемента».То же самое происходит, если я использую холст.

Пример:

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 Ответ

1 голос
/ 08 июня 2011

Похоже, вы добавляете один и тот же прямоугольник более одного раза.

Если вам нужно добавить разные прямоугольники, чем код будет выглядеть следующим образом:

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);
}

Этот код работает.

...