HwndSource Clase

Definición

Presenta contenido de Windows Presentation Foundation (WPF) en una ventana de Win32.

public ref class HwndSource : System::Windows::PresentationSource, IDisposable, System::Windows::Interop::IKeyboardInputSink, System::Windows::Interop::IWin32Window
public class HwndSource : System.Windows.PresentationSource, IDisposable, System.Windows.Interop.IKeyboardInputSink, System.Windows.Interop.IWin32Window
type HwndSource = class
    inherit PresentationSource
    interface IDisposable
    interface IWin32Window
    interface IKeyboardInputSink
type HwndSource = class
    inherit PresentationSource
    interface IDisposable
    interface IKeyboardInputSink
    interface IWin32Window
Public Class HwndSource
Inherits PresentationSource
Implements IDisposable, IKeyboardInputSink, IWin32Window
Herencia
Implementaciones

Comentarios

Importante

Muchos miembros de esta clase no están disponibles en la zona de seguridad de Internet.

Implementa HwndSource una ventana win32 que puede contener contenido de WPF. El contenido de WPF en la ventana se organiza, mide y representa; y es interactivo para la entrada. Dado que está HwndSource diseñado específicamente para interoperar con Win32, esta clase expone varias características de Win32 de bajo nivel. Puede usar esta clase para hacer lo siguiente:

  • Especifique estilos de ventana, estilos de clase de ventana y estilos de ventana extendidos.

  • Enlace el procedimiento de ventana.

  • Proporcione acceso al identificador de ventana (HWND).

  • Destruye la ventana.

La HwndSource clase está diseñada para la interoperabilidad general y no está diseñada como contenedor HWND administrado. En general, no proporciona métodos administrados para manipular la ventana o las propiedades para inspeccionar su estado. En su lugar, la HwndSource clase proporciona acceso al identificador de ventana de Win32 (HWND) a través de la Handle propiedad , que se puede pasar mediante técnicas de PInvoke a las API de Win32 para manipular la ventana.

Construcción

Muchos aspectos de solo HwndSource se pueden especificar en tiempo de construcción. Para crear un HwndSourceobjeto , primero cree una HwndSourceParameters estructura y rellénela con los parámetros deseados. Estos parámetros incluyen lo siguiente:

  • Los estilos de clase, ventana y ventana extendida. Debe usar PInvoke para cambiar los estilos después de crear la ventana. No todos los estilos se pueden cambiar después de crear la ventana. Consulte la documentación de Win32 antes de cambiar los estilos de ventana.

  • Posición inicial de la ventana.

  • Tamaño inicial de la ventana, que incluye si se especifica el tamaño o se debe determinar a partir del tamaño determinado del contenido de WPF.

  • La ventana primaria.

  • que HwndSourceHook se va a incluir en la cadena de procedimientos de ventana. Si especifica un enlace en tiempo de construcción, recibe todos los mensajes de la ventana. Puede usar AddHook para agregar un enlace después de crear la ventana.

  • Configuración de transparencia. Se puede configurar una ventana de nivel superior para combinar con las demás ventanas del escritorio según la transparencia por píxel del contenido de WPF. Para habilitarlo, establezca la UsesPerPixelOpacity propiedad en HwndSourceParameterstrue. Esta propiedad solo se puede especificar en tiempo de construcción, y solo a través de la firma del HwndSource(HwndSourceParameters) constructor, e impone varias limitaciones.

Después de rellenar la HwndSourceParameters estructura, pásela al HwndSource(HwndSourceParameters) constructor de .HwndSource

Duración de objetos

Es HwndSource un objeto de Common Language Runtime (CLR) normal y el recolector de elementos no utilizados administra su duración. Dado que HwndSource representa un recurso no administrado, HwndSource implementa IDisposable. La llamada Dispose sincrónica destruye inmediatamente la ventana win32 si se llama desde el subproceso propietario. Si se llama desde otro subproceso, la ventana Win32 se destruye de forma asincrónica. Llamar Dispose explícitamente desde el código de interoperación podría ser necesario para determinados escenarios de interoperación.

Procedimientos de ventana

La HwndSource clase implementa su propio procedimiento de ventana. Este procedimiento de ventana se usa para procesar mensajes de ventana importantes, como los relacionados con el diseño, la representación y la entrada. Sin embargo, también puede enlazar el procedimiento de ventana para su propio uso. Puede especificar su propio enlace durante la construcción estableciendo la HwndSourceParameters.HwndSourceHook propiedad , o también puede usar AddHook y RemoveHook para agregar y quitar enlaces después de crear la ventana. Los enlaces se llaman por último orden en primer lugar, lo que permite que los enlaces se ejecuten antes del procesamiento integrado. Los ganchos reales se mantienen mediante una referencia débil. Por lo tanto, asegúrese de administrar la duración del delegado de enlace.

Para obtener más información sobre HwndSource y otras clases de interoperación, vea Interoperación de WPF y Win32.

Observe cómo los constructores para HwndSource tomar parámetros similares a los parámetros de las funciones Win32, como CreateWindowEx.

Las transformaciones de escalado no se deben aplicar a RootVisual de .HwndSource Vea Comentarios para RootVisual.

Constructores

HwndSource(HwndSourceParameters)

Inicializa una nueva instancia de la clase HwndSource mediante el uso de una estructura que contiene los valores iniciales.

HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr)

Inicializa una nueva instancia de la clase HwndSource con un estilo de clase, un estilo, un estilo extendido, la posición de x-y, el ancho, el alto, el nombre y la ventana primaria especificados.

HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr, Boolean)

Inicializa una nueva instancia de la clase HwndSource con un estilo de clase, un estilo, un estilo extendido, la posición de x-y, el ancho, el alto, el nombre y la ventana primaria especificados, e indicando si el tamaño de la ventana se ajusta automáticamente.

HwndSource(Int32, Int32, Int32, Int32, Int32, String, IntPtr)

Inicializa una nueva instancia de la clase HwndSource con un estilo de clase, un estilo, un estilo extendido, la posición de x-y, el nombre y la ventana primaria especificados.

Propiedades

AcquireHwndFocusInMenuMode

Obtiene el valor que determina si se debe adquirir el foco de Win32 para la ventana contenedora de WPF para este objeto HwndSource.

ChildKeyboardInputSinks

Obtiene una secuencia de receptores de entrada registrados.

CompositionTarget

Obtiene el administrador visual de la ventana hospedada.

DefaultAcquireHwndFocusInMenuMode

Obtiene o establece el valor de AcquireHwndFocusInMenuMode predeterminado para nuevas instancias de HwndSource.

Dispatcher

Obtiene el objeto Dispatcher al que está asociado DispatcherObject.

(Heredado de DispatcherObject)
Handle

Obtiene el identificador de ventana para este objeto HwndSource.

IsDisposed

Obtiene un valor que indica si se ha llamado a Dispose() en HwndSource.

KeyboardInputSiteCore

Obtiene o establece una referencia a la interfaz IKeyboardInputSite del contenedor del componente.

RestoreFocusMode

Obtiene el objeto RestoreFocusMode para la ventana.

RootVisual

Obtiene o establece la propiedad RootVisual de la ventana.

SizeToContent

Obtiene o establece si se ajusta el tamaño de la ventana a su contenido y cómo se logra.

UsesPerPixelOpacity

Obtiene un valor que declara si se respeta el valor de opacidad por píxel del contenido de la ventana de origen.

Métodos

AddHook(HwndSourceHook)

Agrega un controlador de eventos que recibe todos los mensajes de ventana.

AddSource()

Agrega una instancia de clase derivada de PresentationSource a la lista de orígenes de presentación conocidos.

(Heredado de PresentationSource)
CheckAccess()

Determina si el subproceso de la llamada tiene acceso a DispatcherObject.

(Heredado de DispatcherObject)
ClearContentRenderedListeners()

Establece la lista de agentes de escucha para el evento ContentRendered en null.

(Heredado de PresentationSource)
CreateHandleRef()

Obtiene el identificador de ventana de HwndSource. El identificador de ventana se empaqueta como parte de una estructura HandleRef.

Dispose()

Libera todos los recursos administrados usados por HwndSource y genera el evento Disposed.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
FromHwnd(IntPtr)

Devuelve el objeto HwndSource de la ventana especificada.

GetCompositionTargetCore()

Obtiene el destino visual de la ventana.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
HasFocusWithinCore()

Obtiene un valor que indica si el receptor o uno de los componentes que contiene tiene el foco.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OnDpiChanged(HwndDpiChangedEventArgs)

Se llama cuando el valor de PPP se va a cambiar para la ventana.

OnMnemonicCore(MSG, ModifierKeys)

Se llama a este método cuando se invoca una de las teclas de acceso de este receptor.

RegisterKeyboardInputSinkCore(IKeyboardInputSink)

Registra la interfaz IKeyboardInputSink de un componente contenido.

RemoveHook(HwndSourceHook)

Quita los controladores de eventos que agregó AddHook(HwndSourceHook).

RemoveSource()

Quita una instancia de clase derivada de PresentationSource de la lista de orígenes de presentación conocidos.

(Heredado de PresentationSource)
RootChanged(Visual, Visual)

Proporciona notificación de que el objeto Visual raíz ha cambiado.

(Heredado de PresentationSource)
TabIntoCore(TraversalRequest)

Establece el foco en la primera o última posición de tabulación del receptor.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
TranslateAcceleratorCore(MSG, ModifierKeys)

Procesa la entrada de teclado en el nivel de mensajes de pulsación de teclas.

TranslateCharCore(MSG, ModifierKeys)

Procesa los mensajes de entrada WM_CHAR, WM_SYSCHAR, WM_DEADCHAR y WM_SYSDEADCHAR antes de llamar al método OnMnemonic(MSG, ModifierKeys).

VerifyAccess()

Exige que el subproceso de la llamada tenga acceso a DispatcherObject.

(Heredado de DispatcherObject)

Eventos

AutoResized

Se produce cuando el diseño provoca el ajuste automático de HwndSource.

ContentRendered

Se produce cuando se representa el contenido y está listo para la interacción del usuario.

(Heredado de PresentationSource)
Disposed

Se produce cuando se llama al método Dispose() en este objeto.

DpiChanged

Se produce cuando ha cambiado el valor de PPP del monitor de este HWND o HWND se mueve a un monitor con un valor de PPP diferente.

SizeToContentChanged

Se produce cuando cambia el valor de la propiedad SizeToContent.

Implementaciones de interfaz explícitas

IKeyboardInputSink.HasFocusWithin()

Para obtener una descripción de este miembro, vea IList.Remove(Object).

IKeyboardInputSink.KeyboardInputSite

Para obtener una descripción de este miembro, vea KeyboardInputSite.

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

Para obtener una descripción de este miembro, vea OnMnemonic(MSG, ModifierKeys).

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

Para obtener una descripción de este miembro, vea RegisterKeyboardInputSink(IKeyboardInputSink).

IKeyboardInputSink.TabInto(TraversalRequest)

Para obtener una descripción de este miembro, vea TabInto(TraversalRequest).

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

Para obtener una descripción de este miembro, vea TranslateAccelerator(MSG, ModifierKeys).

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

Para obtener una descripción de este miembro, vea TranslateChar(MSG, ModifierKeys).

Se aplica a

Consulte también