필자는 UserControl에 오버레이 효과를 추가하려고하는데 WPF에서 사용되는 광고자가 무엇인지 알고 있습니다. 그러나 나는 그들이 어떻게 작동하는지에 관해 약간 혼란 스럽다. 나는 adorner 레이어가 WPF 런타임에 의해 암묵적으로 처리된다는 것을 알았고, 항상 사용할 수 있어야한다고 생각했습니다.WPF adorner 레이어는 언제 처음 사용할 수 있습니까?
그러나 코드에서 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 인스턴스를 최상위 창에 배치해야합니까? 또는 어떻게 든 레이어를 직접 정의해야합니까? 문서를 파헤쳐도 아무데도 없어졌습니다.
감사합니다.