Ich versuche, einen Overlay-Effekt zu meinem UserControl hinzuzufügen, und ich weiß, dass Adorner in WPF verwendet werden. Aber ich bin ein wenig verwirrt darüber, wie sie angeblich arbeiten. Ich dachte mir, dass der Adorner-Layer implizit von der WPF-Runtime gehandhabt wird und daher immer verfügbar sein sollte.Wann wird zuerst eine WPF-Adorner-Ebene verfügbar?
Wenn ich jedoch eine Instanz von UserControl im Code erstelle, gibt es dort keine Adorner-Ebene. Der folgende Code schlägt mit Ausnahme fehl:
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.");
}
Kann mir bitte jemand erklären, wie das funktionieren soll? Muss ich die UserControl-Instanz zuerst in ein Top-Level-Fenster platzieren? Oder muss ich die Ebene selbst irgendwie definieren? Durch die Dokumentation zu graben hat mich nirgendwohin geführt.
Vielen Dank!