HwndSource Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 HwndSourceParameters
true
. 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 |
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). |