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.MainWindow
door te geven, geef je gewoon een verwijzing door naar het gewenste venster: new WindowInteropHelper(this).Handle
enzovoort .
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.Windows
gebruiken om alle Windows te krijgen en vervolgens WindowInteropHandler
om bij hun handvatten te komen, zoals je al hebt aangetoond.