我已經寫了一個基於Control的自定義Silverlight控件。我有兩個名爲Top和Bottom的DependencyProperties,它們都包含特定佈局顯示的子控件。然後,我使用ControlTemplate將這兩個控件排列成一個網格,其中一個放置在第0行,另一個放置在第1行。我遇到的問題是,我似乎無法弄清楚如何讓每個子控件的Parent屬性指向我的自定義控件。當我在運行時檢查每個控件時,每個控件的Parent屬性都爲null。如何在Silverlight中設置FrameworkElement的Parent屬性?
這是一個簡單的例子,但我認爲你可以看到一般問題。我有一些更復雜的控制,都分享這個問題。我知道我缺少一些魔法。如果一個ContentControl的Content屬性設置爲某個孩子,它會以某種方式將該孩子的父母設置爲自己。
編輯:多一點信息
在WPF,一個可能使用功能,如AddVisualChild(),RemoveVisualChild(),AddLogicalChild(),RemoveLogicChild()來管理父/子關係,但這些功能在Silverlight中不可用。
正確。在創建可視化樹時,父級由表示框架自己設置。 – 2009-08-30 18:48:13