如果我在控件中调用GetAdornerLayer(control)然后在图层中添加一个装饰器,调用GetAdornerLayer(adorner)会返回同一层吗?我问,因为我们的代码会在控件中添加一个装饰器,然后需要在控件消失时删除该装饰器。你不能在控件的Unloaded事件中调用GetAdornerLayer(control),因为它已经从可视树中删除了,但是GetAdornerLayer(adorner)出现才能工作。
答案 0 :(得分:0)
GetAdornerLayer(adorner)为装饰者返回AdornerLayer,AdornerLayer是Adorner的父级(不是它装饰的元素)。
此外,在可视树生命周期中它是相同的AdornerLayer,您可以缓存对它的引用。
所有这些都可以在Reflector中验证。