2009-11-10 1 views
0

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

XAML: Внутри окно тега держать пустой холст с именем = «Ц»

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

ответ

0

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

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

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

+0

Спасибо всем. Я сделал Canvas.Children.Remove, а затем добавил элемент управления на панель стека, и он отлично работает. – subho

1

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

hidden.Children.Add(ee); 

из вашего кода, как вы также призывают:

cnv.Children.Add(ee); 

 Смежные вопросы

  • Нет связанных вопросов^_^