Het handvat van een WPF-venster vinden

Windows-formulieren hadden een eigenschap win1.Handle die, als ik me goed herinner, de handle van de handle van het hoofdvenster retourneert?

Is er een gelijkwaardige manier om het handvat van een WPF-venster te krijgen?

Ik heb de volgende code online gevonden,

IntPtr windowHandle = new WindowInteropHelper(Application.Current.MainWindow).Handle;

maar ik denk niet dat dat me zal helpen omdat mijn applicatie meerdere vensters heeft.

Bedankt!!


Antwoord 1, autoriteit 100%

Nou, in plaats van Application.Current.MainWindowdoor te geven, geef je gewoon een verwijzing door naar het gewenste venster: new WindowInteropHelper(this).Handleenzovoort .


Antwoord 2, autoriteit 27%

Gebruik gewoon je venster met de WindowsInteropHelper-klasse:

// ... Window myWindow = get your Window instance...
IntPtr windowHandle = new WindowInteropHelper(myWindow).Handle;

Op dit moment vraagt ​​u om het hoofdvenster van de toepassing, waarvan er altijd één zal zijn. U kunt dezelfde techniek echter op elk venster gebruiken, op voorwaarde dat het een van System.Windows.Window afgeleide Window-klasse is.


Antwoord 3, autoriteit 8%

u kunt gebruiken:

Process.GetCurrentProcess().MainWindowHandle

Antwoord 4, autoriteit 2%

Als u om de een of andere reden venstergrepen wilt voor ALLE Window‘s van uw toepassing, kunt u de eigenschap Application.Windowsgebruiken om alle Windows te krijgen en vervolgens WindowInteropHandlerom bij hun handvatten te komen, zoals je al hebt aangetoond.

Other episodes