C# – Como obtener un manejador (handle) para una ventana de WPF
June 2nd, 2011 by JuanK
WPF es una parte del .Net Framework muy robusta pensada para ser multiplataforma, pero a veces necesitamos que nuestra aplicación interactue con aspectos más relacionados con el sistema operativo donde se ejecuta. En estos casos requerimos el menejador ( handle ) de la ventana el cual no es expuesto por WPF.
Para obtenerlo debemos hacer uso de una clase utilitaria llamada WindowInteropHelper la cual tiene un elemento muy importante, la propiedad Handle que no es ni más menos que el manejador a la ventana de WPF. Su uso es muy sencillo:
Window miVentana = this; WindowInteropHelper interopHelper = new WindowInteropHelper(miVentana); IntPtr manejadorVentana = interopHelper.Handle;El código esta asà por claridad, dentro del código de una ventana de WPF a la que querramos obtenerle el manejador basta con hacer:
WindowInteropHelper interopHelper = new WindowInteropHelper(this); IntPtr manejadorVentana = interopHelper.Handle;Ya teniendo el manejador de la ventana podemos acceder a muchas otras funcionalidades fuertemente atadas con el SO como por ejemplo las expuestas en Win32Api o equivalente en otras plataformas
- 2 Comentarios »
- Publicado en la categoría 'C#'

Wordpress
2 comentarios to “C# – Como obtener un manejador (handle) para una ventana de WPF ”
June 2nd, 2011 at 5:18 pm
[...] lograr acceder al WndProc debemos obtener un manejador (handle) para la ventana WPF y seguidamente utilizar la clase utilitaria HwndSource para crear el Hook, allà creamos un [...]
February 23rd, 2012 at 2:07 pm
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.AxSkin1.LoadSkin(“E:\Gerardo\Areas de la Empresa\Sistemas\Sistema c#\skins\Skins\Mac.skn”)
Me.AxSkin1.ApplySkin(Me.Handle)
End Sub
End Class