Windows Forms hatten eine Eigenschaft win1.Handle, die, wenn ich mich recht erinnere, das Handle des Hauptfensterhandles zurückgibt?
Gibt es eine gleichwertige Möglichkeit, das Handle eines WPF-Fensters zu erhalten?
Ich habe den folgenden Code online gefunden:
IntPtr windowHandle = new WindowInteropHelper(Application.Current.MainWindow).Handle;
Aber ich denke nicht, dass mir das helfen wird, da meine Anwendung mehrere Fenster hat.
Vielen Dank!!
Antworten:
Nun, anstatt zu übergeben
Application.Current.MainWindow
, übergeben Sie einfach einen Verweis auf das gewünschte Fenster:new WindowInteropHelper(this).Handle
und so weiter.quelle
Verwenden Sie einfach Ihr Fenster mit der WindowsInteropHelper-Klasse:
Im Moment fragen Sie nach dem Hauptfenster der Anwendung, von dem es immer eines geben wird. Sie können dieselbe Technik jedoch für jedes Fenster verwenden, vorausgesetzt, es handelt sich um eine von System.Windows.Window abgeleitete Fensterklasse.
quelle
Sie können verwenden:
quelle
Wenn Sie
Window
aus irgendeinem Grund Fensterhandles für ALLE Anwendungen verwenden möchten , können Sie dieApplication.Windows
Eigenschaft verwenden, um auf alle Windows zuzugreifen, und dann verwendenWindowInteropHandler
, um auf deren Handles zuzugreifen, wie Sie bereits gezeigt haben.quelle