我已经编写了一个基于 Control 的自定义 Silverlight 控件。我有两个名为 Top 和 Bottom 的 DependencyProperties,它们都包含用于特定布局显示的子控件。然后我使用 ControlTemplate 将这两个控件排列到一个网格中,将一个放在第 0 行,另一个放在第 1 行。我遇到的问题是我似乎无法弄清楚如何让每个子控件的 Parent 属性指向我的自定义控件。当我在运行时检查每个控件时,每个控件的 Parent 属性为空。
这是一个简单的示例,但我认为您可以看到一般问题。我有许多更复杂的控件,它们都有这个问题。我知道我缺少一些魔法。如果 ContentControl 的 Content 属性设置为某个子项,它会以某种方式将该子项的父项设置为自身。
编辑:更多信息
在 WPF 中,可能会使用 AddVisualChild()、RemoveVisualChild()、AddLogicalChild()、RemoveLogicChild() 等函数来管理父/子关系,但这些函数在 Silverlight 中不可用。