1

如果我在控件中调用 GetAdornerLayer(control) 然后向图层添加装饰器,调用 GetAdornerLayer(adorner) 会返回相同的图层吗?我问是因为我们有在控件中添加装饰器的代码,然后需要在控件消失时删除该装饰器。您不能在控件的 Unloaded 事件中调用 GetAdornerLayer(control),因为此时它已从可视化树中删除,但 GetAdornerLayer(adorner)似乎可以工作。

4

1 回答 1

0

GetAdornerLayer(adorner) 返回装饰器的 AdornerLayer,AdornerLayer 是 Adorner 的父级(不是它所装饰的元素)。

此外,它在可视化树的生命周期中是同一个 AdornerLayer,您可以缓存对它的引用。

这一切都可以在 Reflector 中得到验证。

于 2009-07-12T21:26:57.837 回答