Я пытаюсь добавить эффект наложения в свой UserControl, и я знаю, что это то, для чего используются украшения в WPF. Но я немного озадачен тем, как они предположительно работают. Я полагал, что уровень 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 в окно верхнего уровня? Или мне нужно самому как-то определить слой? Копание документации ни к чему не привело.
Спасибо!