HwndSource HwndSource HwndSource HwndSource Class

Definición

Presenta contenido de Windows Presentation Foundation (WPF) en una ventana de Win32.Presents Windows Presentation Foundation (WPF) content in a Win32 window.

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
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.Many members of this class are unavailable in the Internet security zone.

Implementa una Win32Win32 ventana que puede incluir WPFWPF contenido. HwndSourceAn HwndSource implements a Win32Win32 window that can contain WPFWPF content. El WPFWPF contenido de la ventana se organiza, se mide y se representa; y es interactivo para la entrada.The WPFWPF content in the window is arranged, measured, and rendered; and is interactive to input. Win32Win32 Win32Win32 Dado que HwndSource está diseñado específicamente para interoperar con, esta clase expone varias características de bajo nivel.Because the HwndSource is specifically designed to interoperate with Win32Win32, this class exposes several low-level Win32Win32 features. Puede usar esta clase para hacer lo siguiente:You can use this class to do the following:

  • Especificar estilos de ventana, estilos de clase de ventana y estilos de ventana extendidos.Specify window styles, window class styles, and extended window styles.

  • Enlace el procedimiento de ventana.Hook the window procedure.

  • Proporcionar acceso al identificador de ventana (HWND).Provide access to the window handle (HWND).

  • Destruya la ventana.Destroy the window.

La HwndSource clase está diseñada para la interoperabilidad general y no está diseñada como contenedor de HWND administrado.The HwndSource class is designed for general interoperability and is not designed as a managed HWND wrapper. En general, no proporciona métodos administrados para manipular la ventana o las propiedades para inspeccionar su estado.In general, it does not provide managed methods for manipulating the window or properties for inspecting its state. En su lugar, HwndSource la clase proporciona acceso Win32Win32 al identificador de ventana (HWND) a Handle través de la propiedad, que se puede pasar por medio de Win32Win32 técnicas de PInvoke a APIAPIs para manipular la ventana.Instead, the HwndSource class provides access to the Win32Win32 window handle (HWND) through the Handle property, which can be passed by means of PInvoke techniques to Win32Win32 APIAPIs in order to manipulate the window.

FabricaciónConstruction

Muchos aspectos de solo HwndSource se pueden especificar en el momento de la construcción.Many aspects of the HwndSource can only be specified at construction time. Para crear un HwndSource, primero cree una HwndSourceParameters estructura y rellénelo con los parámetros deseados.To create an HwndSource, first create an HwndSourceParameters structure and populate it with the desired parameters. Estos parámetros incluyen los siguientes:These parameters include the following:

  • Los estilos de clase, ventana y ventana extendida.The class, window, and extended window styles. Debe usar PInvoke para cambiar los estilos después de crear la ventana.You must use PInvoke to change the styles after the window is created. No todos los estilos se pueden cambiar una vez creada la ventana.Not all styles can be changed after the window is created. Consulte la Win32Win32 documentación antes de cambiar los estilos de ventana.Consult the Win32Win32 documentation before changing window styles.

  • Posición inicial de la ventana.The initial position of the window.

  • 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 WPFWPF contenido.The initial size of the window, which includes whether the size is specified or should be determined from the determined size of the WPFWPF content.

  • Ventana primaria.The parent window.

  • HwndSourceHook Que se va a incluir en la cadena de procedimientos de ventana.The HwndSourceHook to include in the window procedure chain. Si especifica un enlace en el momento de la construcción, recibe todos los mensajes para la ventana.If you specify a hook at construction time, it receives all messages for the window. Puede usar AddHook para agregar un enlace después de crear la ventana.You can use AddHook to add a hook after the window is created.

  • Configuración de transparencia.The transparency settings. Una ventana de nivel superior se puede configurar para que se fusione con las demás ventanas del escritorio según la transparencia por píxel del WPFWPF contenido.A top-level window can be configured to blend with the other windows on the desktop according to the per-pixel transparency of the WPFWPF content. Para habilitar esto, establezca la UsesPerPixelOpacity propiedad HwndSourceParameters de en true.To enable this, set the UsesPerPixelOpacity property in the HwndSourceParameters to true. Esta propiedad solo se puede especificar en el momento de la construcción, y HwndSource(HwndSourceParameters) solo a través de la firma del constructor, e impone varias limitaciones.This property can only be specified at construction time, and only through the HwndSource(HwndSourceParameters) constructor signature, and it imposes several limitations.

Después de rellenar la HwndSourceParameters estructura, pásela HwndSource(HwndSourceParameters) al constructor para HwndSource.After you populate the HwndSourceParameters structure, pass it to the HwndSource(HwndSourceParameters) constructor for the HwndSource.

Duración del objetoObject Lifetime

Es un objeto normal Common Language Runtime (CLR)common language runtime (CLR) y el recolector de elementos no utilizados administra su duración. HwndSourceAn HwndSource is a regular Common Language Runtime (CLR)common language runtime (CLR) object, and its lifetime is managed by the garbage collector. Dado que HwndSource representa un recurso no administrado, HwndSource implementa IDisposable.Because the HwndSource represents an unmanaged resource, HwndSource implements IDisposable. Al llamar Dispose a de forma sincrónica Win32Win32 , se destruye inmediatamente la ventana si se llama desde el subproceso propietario.Synchronously calling Dispose immediately destroys the Win32Win32 window if called from the owner thread. Si se llama desde otro subproceso Win32Win32 , la ventana se destruye de forma asincrónica.If called from another thread, the Win32Win32 window is destroyed asynchronously. Es Dispose posible que sea necesario llamar a explícitamente desde el código interoperable para ciertos escenarios de interoperación.Calling Dispose explicitly from the interoperating code might be necessary for certain interoperation scenarios.

Procedimientos de ventanaWindow Procedures

La HwndSource clase implementa su propio procedimiento de ventana.The HwndSource class implements its own window procedure. 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.This window procedure is used to process important window messages, such as those related to layout, rendering, and input. Sin embargo, también puede enlazar el procedimiento de ventana para su propio uso.However, you can also hook the window procedure for your own use. 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 una vez creada la ventana.You can specify your own hook during construction by setting the HwndSourceParameters.HwndSourceHook property, or you can also use AddHook and RemoveHook to add and remove hooks after the window is created. Se llama a los enlaces por orden de último en salir primero, lo que permite que los enlaces se ejecuten antes del procesamiento integrado.The hooks are called by last-in first-out order, which enables your hooks to execute before the built-in processing. Los enlaces reales se mantienen mediante una referencia débil.The actual hooks are held by a weak reference. Por lo tanto, asegúrese de que administra la duración del delegado de enlace.Therefore, make sure that you manage the lifetime of your hook delegate.

Para obtener más información HwndSource sobre y otras clases de interoperabilidad, consulte interoperabilidad de WPF y Win32.For more information about HwndSource and other interoperation classes, see WPF and Win32 Interoperation.

Observe cómo los constructores de HwndSource toman parámetros que se parecen a los parámetros Win32Win32 de funciones como CreateWindowEx.Notice how the constructors for HwndSource take parameters that resemble the parameters for Win32Win32 functions such as CreateWindowEx.

Las RootVisual transformaciones de escala no se deben aplicar a un HwndSourcede.Scale transformations should not be applied to the RootVisual of an HwndSource. Vea la sección RootVisualcomentarios de.See Remarks for RootVisual.

Constructores

HwndSource(HwndSourceParameters) HwndSource(HwndSourceParameters) HwndSource(HwndSourceParameters) HwndSource(HwndSourceParameters)

Inicializa una nueva instancia de la clase HwndSource mediante el uso de una estructura que contiene los valores iniciales.Initializes a new instance of the HwndSource class by using a structure that contains the initial settings.

HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr) HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr) HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr) 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.Initializes a new instance of the HwndSource class with a specified class style, style, extended style, x-y position, width, height, name, and parent window.

HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr, Boolean) HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr, Boolean) HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr, Boolean) 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.Initializes a new instance of the HwndSource class with a specified class style, style, extended style, x-y position, width, height, name, and parent window, and by specifying whether the window is autosized.

HwndSource(Int32, Int32, Int32, Int32, Int32, String, IntPtr) HwndSource(Int32, Int32, Int32, Int32, Int32, String, IntPtr) HwndSource(Int32, Int32, Int32, Int32, Int32, String, IntPtr) 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.Initializes a new instance of the HwndSource class with a specified class style, style, extended style, x-y position, name, and parent window.

Propiedades

AcquireHwndFocusInMenuMode AcquireHwndFocusInMenuMode AcquireHwndFocusInMenuMode AcquireHwndFocusInMenuMode

Obtiene el valor que determina si se debe adquirir el foco de Win32 para la ventana contenedora de WPF para este objeto HwndSource.Gets the value that determines whether to acquire Win32 focus for the WPF containing window for this HwndSource.

ChildKeyboardInputSinks ChildKeyboardInputSinks ChildKeyboardInputSinks ChildKeyboardInputSinks

Obtiene una secuencia de receptores de entrada registrados.Gets a sequence of registered input sinks.

CompositionTarget CompositionTarget CompositionTarget CompositionTarget

Obtiene el administrador visual de la ventana hospedada.Gets the visual manager for the hosted window.

DefaultAcquireHwndFocusInMenuMode DefaultAcquireHwndFocusInMenuMode DefaultAcquireHwndFocusInMenuMode DefaultAcquireHwndFocusInMenuMode

Obtiene o establece el valor de AcquireHwndFocusInMenuMode predeterminado para nuevas instancias de HwndSource.Gets or sets the default AcquireHwndFocusInMenuMode value for new instances of HwndSource.

Dispatcher Dispatcher Dispatcher Dispatcher

Obtiene el objeto Dispatcher al que está asociado DispatcherObject.Gets the Dispatcher this DispatcherObject is associated with.

(Inherited from DispatcherObject)
Handle Handle Handle Handle

Obtiene el identificador de ventana para este objeto HwndSource.Gets the window handle for this HwndSource.

IsDisposed IsDisposed IsDisposed IsDisposed

Obtiene un valor que indica si se ha llamado a Dispose() en HwndSource.Gets a value that indicates whether Dispose() has been called on this HwndSource.

KeyboardInputSiteCore KeyboardInputSiteCore KeyboardInputSiteCore KeyboardInputSiteCore

Obtiene o establece una referencia a la interfaz IKeyboardInputSite del contenedor del componente.Gets or sets a reference to the component's container's IKeyboardInputSite interface.

RestoreFocusMode RestoreFocusMode RestoreFocusMode RestoreFocusMode

Obtiene el objeto RestoreFocusMode para la ventana.Gets the RestoreFocusMode for the window.

RootVisual RootVisual RootVisual RootVisual

Obtiene o establece la propiedad RootVisual de la ventana.Gets or sets the RootVisual of the window.

SizeToContent SizeToContent SizeToContent SizeToContent

Obtiene o establece si se ajusta el tamaño de la ventana a su contenido y cómo se logra.Get or sets whether and how the window is sized to its content.

UsesPerPixelOpacity UsesPerPixelOpacity UsesPerPixelOpacity UsesPerPixelOpacity

Obtiene un valor que declara si se respeta el valor de opacidad por píxel del contenido de la ventana de origen.Gets a value that declares whether the per-pixel opacity of the source window content is respected.

Métodos

AddHook(HwndSourceHook) AddHook(HwndSourceHook) AddHook(HwndSourceHook) AddHook(HwndSourceHook)

Agrega un controlador de eventos que recibe todos los mensajes de ventana.Adds an event handler that receives all window messages.

AddSource() AddSource() AddSource() AddSource()

Agrega una instancia de clase derivada de PresentationSource a la lista de orígenes de presentación conocidos.Adds a PresentationSource derived class instance to the list of known presentation sources.

(Inherited from PresentationSource)
CheckAccess() CheckAccess() CheckAccess() CheckAccess()

Determina si el subproceso de la llamada tiene acceso a DispatcherObject.Determines whether the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)
ClearContentRenderedListeners() ClearContentRenderedListeners() ClearContentRenderedListeners() ClearContentRenderedListeners()

Establece la lista de agentes de escucha para el evento ContentRendered en null.Sets the list of listeners for the ContentRendered event to null.

(Inherited from PresentationSource)
CreateHandleRef() CreateHandleRef() CreateHandleRef() CreateHandleRef()

Obtiene el identificador de ventana de HwndSource.Gets the window handle for the HwndSource. El identificador de ventana se empaqueta como parte de una estructura HandleRef.The window handle is packaged as part of a HandleRef structure.

Dispose() Dispose() Dispose() Dispose()

Libera todos los recursos administrados usados por HwndSource y genera el evento Disposed.Releases all managed resources that are used by the HwndSource, and raises the Disposed event.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
FromHwnd(IntPtr) FromHwnd(IntPtr) FromHwnd(IntPtr) FromHwnd(IntPtr)

Devuelve el objeto HwndSource de la ventana especificada.Returns the HwndSource object of the specified window.

GetCompositionTargetCore() GetCompositionTargetCore() GetCompositionTargetCore() GetCompositionTargetCore()

Obtiene el destino visual de la ventana.Gets the visual target of the window.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
HasFocusWithinCore() HasFocusWithinCore() HasFocusWithinCore() HasFocusWithinCore()

Obtiene un valor que indica si el receptor o uno de los componentes que contiene tiene el foco.Gets a value that indicates whether the sink or one of its contained components has focus.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
OnDpiChanged(HwndDpiChangedEventArgs) OnDpiChanged(HwndDpiChangedEventArgs) OnDpiChanged(HwndDpiChangedEventArgs) OnDpiChanged(HwndDpiChangedEventArgs)

Se llama cuando el valor de PPP se va a cambiar para la ventana.Called when the DPI is going to change for the window.

OnMnemonicCore(MSG, ModifierKeys) OnMnemonicCore(MSG, ModifierKeys) OnMnemonicCore(MSG, ModifierKeys) OnMnemonicCore(MSG, ModifierKeys)

Se llama a este método cuando se invoca una de las teclas de acceso de este receptor.Called when one of the mnemonics (access keys) for this sink is invoked.

RegisterKeyboardInputSinkCore(IKeyboardInputSink) RegisterKeyboardInputSinkCore(IKeyboardInputSink) RegisterKeyboardInputSinkCore(IKeyboardInputSink) RegisterKeyboardInputSinkCore(IKeyboardInputSink)

Registra la interfaz IKeyboardInputSink de un componente contenido.Registers the IKeyboardInputSink interface of a contained component.

RemoveHook(HwndSourceHook) RemoveHook(HwndSourceHook) RemoveHook(HwndSourceHook) RemoveHook(HwndSourceHook)

Quita los controladores de eventos que agregó AddHook(HwndSourceHook).Removes the event handlers that were added by AddHook(HwndSourceHook).

RemoveSource() RemoveSource() RemoveSource() RemoveSource()

Quita una instancia de clase derivada de PresentationSource de la lista de orígenes de presentación conocidos.Removes a PresentationSource derived class instance from the list of known presentation sources.

(Inherited from PresentationSource)
RootChanged(Visual, Visual) RootChanged(Visual, Visual) RootChanged(Visual, Visual) RootChanged(Visual, Visual)

Proporciona notificación de que el objeto Visual raíz ha cambiado.Provides notification that the root Visual has changed.

(Inherited from PresentationSource)
TabIntoCore(TraversalRequest) TabIntoCore(TraversalRequest) TabIntoCore(TraversalRequest) TabIntoCore(TraversalRequest)

Establece el foco en la primera o última posición de tabulación del receptor.Sets focus on either the first tab stop or the last tab stop of the sink.

ToString() ToString() ToString() ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)
TranslateAcceleratorCore(MSG, ModifierKeys) TranslateAcceleratorCore(MSG, ModifierKeys) TranslateAcceleratorCore(MSG, ModifierKeys) TranslateAcceleratorCore(MSG, ModifierKeys)

Procesa la entrada de teclado en el nivel de mensajes de pulsación de teclas.Processes keyboard input at the key-down message level.

TranslateCharCore(MSG, ModifierKeys) TranslateCharCore(MSG, ModifierKeys) TranslateCharCore(MSG, ModifierKeys) 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).Processes WM_CHAR, WM_SYSCHAR, WM_DEADCHAR, and WM_SYSDEADCHAR input messages before the OnMnemonic(MSG, ModifierKeys) method is called.

VerifyAccess() VerifyAccess() VerifyAccess() VerifyAccess()

Exige que el subproceso de la llamada tenga acceso a DispatcherObject.Enforces that the calling thread has access to this DispatcherObject.

(Inherited from DispatcherObject)

Eventos

AutoResized AutoResized AutoResized AutoResized

Se produce cuando el diseño provoca el ajuste automático de HwndSource.Occurs when layout causes the HwndSource to automatically resize.

ContentRendered ContentRendered ContentRendered ContentRendered

Se produce cuando se representa el contenido y está listo para la interacción del usuario.Occurs when content is rendered and ready for user interaction.

(Inherited from PresentationSource)
Disposed Disposed Disposed Disposed

Se produce cuando se llama al método Dispose() en este objeto.Occurs when the Dispose() method is called on this object.

DpiChanged DpiChanged DpiChanged 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.Occurs when the DPI of the monitor of this Hwnd has changed, or the Hwnd is moved to a monitor with a different DPI.

SizeToContentChanged SizeToContentChanged SizeToContentChanged SizeToContentChanged

Se produce cuando cambia el valor de la propiedad SizeToContent.Occurs when the value of the SizeToContent property changes.

Implementaciones de interfaz explícitas

IKeyboardInputSink.HasFocusWithin() IKeyboardInputSink.HasFocusWithin() IKeyboardInputSink.HasFocusWithin() IKeyboardInputSink.HasFocusWithin()

Para una descripción de este miembro, vea IList.Remove(Object).For a description of this member, see IList.Remove(Object).

IKeyboardInputSink.KeyboardInputSite IKeyboardInputSink.KeyboardInputSite IKeyboardInputSink.KeyboardInputSite IKeyboardInputSink.KeyboardInputSite

Para una descripción de este miembro, vea KeyboardInputSite.For a description of this member, see KeyboardInputSite.

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys) IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys) IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys) IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

Para una descripción de este miembro, vea OnMnemonic(MSG, ModifierKeys).For a description of this member, see OnMnemonic(MSG, ModifierKeys).

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink) IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink) IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink) IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

Para una descripción de este miembro, vea RegisterKeyboardInputSink(IKeyboardInputSink).For a description of this member, see RegisterKeyboardInputSink(IKeyboardInputSink).

IKeyboardInputSink.TabInto(TraversalRequest) IKeyboardInputSink.TabInto(TraversalRequest) IKeyboardInputSink.TabInto(TraversalRequest) IKeyboardInputSink.TabInto(TraversalRequest)

Para una descripción de este miembro, vea TabInto(TraversalRequest).For a description of this member, see TabInto(TraversalRequest).

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys) IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys) IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys) IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

Para una descripción de este miembro, vea TranslateAccelerator(MSG, ModifierKeys).For a description of this member, see TranslateAccelerator(MSG, ModifierKeys).

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys) IKeyboardInputSink.TranslateChar(MSG, ModifierKeys) IKeyboardInputSink.TranslateChar(MSG, ModifierKeys) IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

Para una descripción de este miembro, vea TranslateChar(MSG, ModifierKeys).For a description of this member, see TranslateChar(MSG, ModifierKeys).

Se aplica a

Consulte también: