Как добавить управление контентом в фигуру, добавленную на холст во время выполнения - PullRequest
0 голосов
/ 10 ноября 2009

У меня есть статический холст. Я добавил время выполнения формы. Затем я пытаюсь добавить контентконтроль, который будет держать форму. Но так как форма уже добавлена ​​на холст, это дает логическую дочернюю ошибку. Может кто-нибудь помочь мне, как это сделать, сохраняя логику динамического добавления contentcontrol позже?

XAML: Внутри окна тега оставьте пустой холст с именем = "cnv"

C #:

        Ellipse ee = new Ellipse();
        ee.Width = 100;
        ee.Height= 50;
        ee.Fill= Brushes.Red;
        ee.Name = "el";
        hidden.Children.Add(ee);

        ContentControl cc = new ContentControl();
        cc.BorderBrush = Brushes.Black;
        cc.Content = ee;

        cnv.Children.Add(ee);

Ответы [ 2 ]

1 голос
/ 10 ноября 2009

Как указывает Кент, элемент может иметь только одного родителя, поэтому просто удалите строку:

    hidden.Children.Add(ee);

из вашего кода, как вы также звоните:

    cnv.Children.Add(ee);
0 голосов
/ 10 ноября 2009

A UIElement может иметь только одного родителя, поэтому вам необходимо удалить его из Canvas перед повторным размещением его в другом месте:

hidden.Children.Remove(ee);
cc.Content = ee;
cnv.Children.Add(ee);

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

...