wpf window handle

Encontrar el manejador en una ventana de WPF



window handle (4)

Bueno, en lugar de pasar Application.Current.MainWindow , simplemente pase una referencia a la ventana que desee: new WindowInteropHelper(this).Handle y así sucesivamente.

Los formularios de Windows tenían una propiedad win1.Handle que, si no recuerdo mal, devuelve el identificador del manejador de la ventana principal.

¿Hay una forma equivalente de obtener el control de una Ventana de WPF?

Encontré el siguiente código en línea,

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

pero no creo que eso me ayude porque mi aplicación tiene varias ventanas.

¡¡Gracias!!


Si desea manejadores de ventana para TODAS las Window de su aplicación por alguna razón, puede usar la propiedad Application.Windows para obtener todas las ventanas y luego usar WindowInteropHandler para obtener sus identificadores como ya lo ha demostrado.


Simplemente use su ventana con la clase WindowsInteropHelper:

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

En este momento, está solicitando la ventana principal de la Aplicación, de la cual siempre habrá una. Sin embargo, puede utilizar esta misma técnica en cualquier ventana, siempre que sea una clase Window derivada de System.Windows.Window.


puedes usar :

Process.GetCurrentProcess().MainWindowHandle