Ok, also hat meine previous question keine brauchbaren Antworten ergeben, also werde ich versuchen, aus einer anderen Richtung zu kommen.HitTest über Windows?
Meine Anwendung hat möglicherweise mehrere Fenster. Bei einem Punkt in Bildschirmkoordinaten muss ich herausfinden, auf welches Fenster er "fällt" - d. H. Das Fenster finden, das an erster Stelle aller Fenster steht, die diesen Punkt enthalten. Wenn sie Visual
s in einem Fenster waren, würde ich VisualTreeHelper.HitTest
verwenden. Da es sich jedoch um verschiedene Fenster handelt, ist nicht klar, was als erstes Argument für diese Methode angegeben werden soll.
Vielen Dank für Ihre Antwort. Ich werde es akzeptieren, da es die einzige Antwort ist, und es funktioniert definitiv, wenn nur auf Kosten von Full Trust :-(Eine Frage bleibt jedoch: Warum genau sind Sie sicher, dass WPF dies nicht erlaubt? –
Jede beliebige Win32-Anwendung kann die Z-Reihenfolge mithilfe von SetWindowPos ändern Es gibt zwei Möglichkeiten, wie WPF diese Z-Bestellinformationen von Win32 erhalten kann: GetTopWindow/GetNextWindow wie oben gezeigt oder WM_WINDOWPOSCHANGED verarbeiten und Status speichern Es gibt keine Verweise auf GetTopWindow in den WPF-Assemblys. Das Überprüfen von Objekten im Debugger zeigt, dass WPF keine Z-Order-Informationen speichert. WPF kann Ihnen nicht sagen, was es selbst nicht weiß. –