Ich erstellte ein normales WPF-Fenster, das keine Window.Owner
hat. Dieses Fenster hat ein Besitzer-Handle-Set, wenn es seine WindowInteropHelper.Owner
-Eigenschaft überprüft. Ich erkannte auch, dass das eigene Fensterrechteck mit jedem neuen Fenster irgendwo auf dem Desktop kaskadiert wird (mit GetWindowRect).WPF-Fenster hat Besitzerhandle aber keinen Besitzer
Kann mir jemand sagen, was dort vor sich geht? Ist es etwas wie ein Standardverhalten in WPF, um die Startposition auf das Zentrum des Besitzers zu setzen, wenn es keinen echten Besitzer gibt?
Die Sache ist, würde Ich mag zwei Fälle unterscheiden, um die Lage sein, um das Fenster zu der Besitzer Fenstermitte zu zentrieren oder - wenn kein Besitzer gibt es - die Bildschirmmitte (!):
- Das Fenster Besitzer ein nicht-WPF-Fenster ist (zB wenn in einem vsto Plugin verwendet)
- in der Tat Es Fenster kein Besitzer
wenn jemand eine Idee hat, wie ich das erkennen konnte oder meine Anforderungen achive, Ich würde mich freuen :)
Mit freundlichen Grüßen Lumo
Ich denke, Sie haben den Punkt nicht verstanden. Ich habe bereits GetWindowRect verwendet und es gibt true zurück, obwohl ich kein Elternteil auf das Fenster gesetzt habe. Das Rect ist kaskadiert, wie ich in meiner Frage geschrieben habe. Danke trotzdem für deine Antwort! – Lumo
Ah, jetzt verstehe ich es. Ist es möglich, dass Sie das Handle des "DesktopWindow" bekommen?Es gibt einen Hilfsfenstergriff, der immer den gesamten Bildschirm abdeckt. Sie können den Handle dazu mit der Funktion 'GetDesktopWindow' holen. Vielleicht hilft das, herauszufinden, was das wahre Elternteil des Fensters ist? – Nitram
Ich habe den DesktopWindow Pointer überprüft, es ist ein anderer. Mit jedem neuen Fenster gibt es ein anderes Besitzerhandle und dieses neue Besitzerfenster ist kaskadiert. Ist dies nicht das Standardverhalten eines Fensters in WPF? – Lumo