我想添加覆盖效果到我的用户控件,我知道这是什么装饰用于WPF。但我对他们应该如何工作感到困惑。我认为adorner层是由WPF运行时隐式处理的,因此应始终可用。什么时候WPF装饰图层第一次变得可用?
但是,当我在代码中创建我的UserControl的实例时,那里没有装饰器层。以下代码失败,例外:
var view = new MyUserControl();
var target = view.GetAdornerTarget(); // This returns a specific UI control.
var layer = AdornerLayer.GetAdornerLayer(target);
if (layer == null)
{
throw new Exception("No adorner layer at the moment.");
}
有人请向我解释,这应该如何工作?我是否需要首先将UserControl实例放入顶层窗口?或者我需要以某种方式自己定义图层?通过文档挖掘让我无处可去。
谢谢!