我想给我的UserControl添加一个覆盖效果,我知道在WPF中这时需要使用adorner。但是我对它们的工作原理有些困惑。我认为adorner层被WPF运行时隐式处理,因此应该始终可用。
但当我在代码中创建我的UserControl实例时,那里没有adorner层。以下代码会引发异常:
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实例放入顶层窗口中吗?还是我需要自己定义层次结构?翻阅文档并没有给我带来任何帮助。
谢谢!