Ich versuche, eine schöne "Drag & Drop-Zone" in WPF zu erstellen, die in der Adorner-Ebene angezeigt wird, wenn etwas in die Hauptanwendung gezogen wird. Das Problem ist, dass ich keine Ereignisse von meinem Adorner bekomme, obwohl es gemäß der Dokumentation alle Eingabeereignisse erhalten sollte, da es sich in einer höheren Z-Reihenfolge befindet.Keine Ereignisse an WPF adorner Ebene übergeben
Um mein Problem zu debuggen, habe ich ein wirklich einfaches Beispiel erstellt, wo ich ein Benutzersteuerelement mit nur einer Schaltfläche habe. Dieses Benutzersteuerelement wird in der Adorner-Ebene angezeigt, ich kann jedoch nicht auf die Schaltfläche klicken. Warum? Was habe ich falsch gemacht?
Meine adorner Klasse ist wie folgt aufgebaut:
public ShellOverlayAdorner(UIElement element, AdornerLayer adornerLayer)
:base(element)
{
_adornerLayer = adornerLayer;
_overlayView = new AdornedElement();
_overlayView.AllowDrop = true;
_adornerLayer.Add(this);
}
und wird im Hauptfenster von
private void Window_Loaded(object sender, RoutedEventArgs e)
{
adornerLayer = AdornerLayer.GetAdornerLayer(MyTopGridWithButtonInIt);
ShellOverlayAdorner shell = new ShellOverlayAdorner(MyTopGridWithButtonInIt, adornerLayer);
}
Ich bekomme keine Ereignisse aus meiner Kontrolle überhaupt erstellt, dh keine Mausklicks , Maus über, Knopf klickt. Ich kann nicht einmal auf den Button in der Adorner-Ebene klicken. Was habe ich falsch gemacht?
Es ist für mich funktioniert gut ... sind Sie sicher, dass Sie nicht IsHitTestVisible auf Ihrem adorner auf false hat gesetzt? –
Hmmm .. Seltsam, weil ich das für alle Testprojekte bekomme, die ich erstelle. Nein, ich habe IsHitTestVisible nicht auf false gesetzt. Ich habe getestet, es auf beide wahr und falsch einzustellen, um eine Änderung zu erhalten, aber nichts passiert. – Johanna