Microsoft MVP

Email y Rss

email rss

Klout

Seguidores en facebook

Timeline de mi Twitter

Tienes preguntas?

Ideas de un Conejo
Más allá de los sistemas de información: (C#)=> videojuegos, soluciones a problemas interesantes y Sistemas Operativos
XNA
C#
Sistemas Operativos
Varios
Windows Phone
WinRT
XAML
Azure
HTML 5
Acerca de

C# – Como obtener un manejador (handle) para una ventana de WPF

June 2nd, 2011 by JuanK

Follow @JuanKRuiz

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

Print Friendly

Follow @JuanKRuiz

  • 2 Comentarios »
  • Publicado en la categoría 'C#'

2 comentarios to “C# – Como obtener un manejador (handle) para una ventana de WPF ”


  • C# - usar el WndProc en una Ventana WPF | Ideas de un Conejo Says:
    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 [...]

  • Gerardo Guzman Says:
    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

Deja un comentario

Redes Sociales

Follow @JuanKRuiz
Answer Questions

Busca en el blog

Artículos Relacionados

  • Cómo obtener el SID de un usuario local? – C#
  • C# – Cómo modificar la transparencia en la ventana de otro proceso?
  • C# – 10 pasos para Consumir el RSS de Top news de “The Washington Post” en un Toolbar para IE
  • C# – usar el WndProc en una Ventana WPF
  • C# – WPF – Escalar el tamaño de la fuente al cambiar el tamaño de la ventana o control
  • C# – Conseguir un Handler a la Ventana de un Proceso
  • C# – Cómo generar datos aleatorios para realizar pruebas
  • Artículos Relacionados

  • Cómo obtener el SID de un usuario local? – C#
  • C# – Cómo modificar la transparencia en la ventana de otro proceso?
  • C# – 10 pasos para Consumir el RSS de Top news de “The Washington Post” en un Toolbar para IE
  • C# – usar el WndProc en una Ventana WPF
  • C# – WPF – Escalar el tamaño de la fuente al cambiar el tamaño de la ventana o control
  • C# – Conseguir un Handler a la Ventana de un Proceso
  • C# – Cómo generar datos aleatorios para realizar pruebas
  • Nube de Temas

    API - Azure - C# - codigo - Forms - IE - IE9 - Image - imagenes - IT - Microsoft - MVP - Pinned - PowerShell - Proceso - rendimiento - RSS - sistema - Sistemas Operativos - Site - Visual - WCF - Windows - Windows 8 - Windows Store - WinRT - WndProc - WPF - XAML - XNA

    Blogs recomendados

  • VBCodigoPocketPC Espacio para tratar temas de programacion para dispositivos moviles, Pocket PC, Compact Framework, Embbeded Visual Basic, Visual Basic.NET , C# (C Sharp)
  • Róbinson Moscoso Estaré publicando acá cosas sobre tecnologia .NET, situacioines cotidianas de las que voy aprendiendo… sirve como extensión de memoria.
  • .Net C# Blog de Nelsón Venegas
  • Warnov Microsoft Developer Evangelist
  • IT LIfe Blog de mi Hermano que esta en el lado claro: IT
  • Sorey Garcia Una chica del común con la firme intención de no serlo
  • Black Byte videojuegos, modelado y animación 3d
  • Road to IT World Cosas interesantes de IT
  • Marcela Chitiva Un poco de esto… un poco de aquello
  • Surviving the Nigth El mejor blog para aquellos que nos gustan los “internals”
  • Meta

    1. Log in
    2. WordPress

    Ideas de un Conejo is powered by Wordpress. Theme designed by Juan Carlos Ruiz.