Con l'introduzione del .net framework 3.5 e delle applicazioni basate su WPF (Windows Presentation Foundation Classes) Microsoft ha rivoluzionato massicciamente il concetto di finestra. Uno dei parametri che ne ha fatto le spese è il concetto di handle della finestra.
Nelle applicazioni di tipo "Windows Form" (.NET 2.0) ottenere il valore dell'handle di una finestra era alquanto semplice in quanto era sufficente leggere la proprietà hWnd della nostra finestra:
Int i = Window1.hWnd;
Più difficile recuperare il valore in una applicazione WPF dove la proprietà .hWnd non esiste più.
Ci viene in aiuto la classe WindowInteropHelper appartenente al namespace
http://msdn.microsoft.com/it-it/library/system.windows.interop.windowinterophelper.aspx
L'uso è molto semplice. E' sufficente creare un'istanza della classe passando come parametro del costruttore la finestra di nostro interesse (oggetto di tipo System.Windows.Window). L'handle che ci interessa è una proprietà dell'oggetto così ottenuto.
WindowInteropHelper wih = new WindowInteropHelper(Application.Current.MainWindow);
Int hWnd = wih.Handle;
Int hWnd = wih.Handle;
Nessun commento:
Posta un commento