2009-11-10 27 views
0

我有一個靜態畫布。我已經添加了一個形狀運行時。然後我嘗試添加一個可以保持形狀的內容控件。但是,由於該形狀已添加到畫布上,因此會出現邏輯子錯誤。 任何人都可以幫助我如何做到這一點保持以後動態添加contentcontrol的邏輯嗎?如何將內容控件添加到添加到畫布的所有運行時的形狀

XAML: 窗戶內標籤保持空白的畫布與NAME = 「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); 

回答

0

一個UIElement只能有一個父類,所以你需要從中刪除Canvas將其重新安置在別處之前:

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

PS。幾乎肯定有一種更好,更清潔的方式來做任何你想做的事情,而不是像你一樣在視覺樹中玩耍。

+0

謝謝大家。我做了一個Canvas.Children.Remove,然後將控件添加到堆棧面板並且工作正常。 – subho 2009-11-11 12:33:20

1

肯特指出一個元素只能有一個父類,所以簡單地刪除行:從您的代碼

hidden.Children.Add(ee); 

,你還呼籲:

cnv.Children.Add(ee);