Partager via


HwndSource Classe

Définition

Présente du contenu WPF (Windows Presentation Foundation) dans une fenêtre 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
Héritage
Implémente

Remarques

Important

De nombreux membres de cette classe ne sont pas disponibles dans la zone de sécurité Internet.

Un HwndSource implémente une fenêtre Win32 qui peut contenir du contenu WPF. Le contenu WPF dans la fenêtre est organisé, mesuré et rendu ; et est interactif à entrer. Étant donné que le HwndSource est spécifiquement conçu pour interagir avec Win32, cette classe expose plusieurs fonctionnalités Win32 de bas niveau. Vous pouvez utiliser cette classe pour effectuer les opérations suivantes :

  • Spécifiez des styles de fenêtre, des styles de classe de fenêtre et des styles de fenêtre étendus.

  • Crochetez la procédure de fenêtre.

  • Fournir l’accès au handle de fenêtre (HWND).

  • Détruisez la fenêtre.

La HwndSource classe est conçue pour l’interopérabilité générale et n’est pas conçue comme un wrapper HWND managé. En général, il ne fournit pas de méthodes managées pour manipuler la fenêtre ou de propriétés pour inspecter son état. Au lieu de cela, la HwndSource classe fournit l’accès au handle de fenêtre Win32 (HWND) par le biais de la Handle propriété, qui peut être passée au moyen de techniques PInvoke aux API Win32 afin de manipuler la fenêtre.

Construction

De nombreux aspects de ne HwndSource peuvent être spécifiés qu’au moment de la construction. Pour créer un HwndSource, commencez par créer une HwndSourceParameters structure et remplissez-la avec les paramètres souhaités. Ces paramètres sont les suivants :

  • Styles de classe, de fenêtre et de fenêtre étendue. Vous devez utiliser PInvoke pour modifier les styles après la création de la fenêtre. Tous les styles ne peuvent pas être modifiés après la création de la fenêtre. Consultez la documentation Win32 avant de modifier les styles de fenêtre.

  • Position initiale de la fenêtre.

  • Taille initiale de la fenêtre, qui indique si la taille est spécifiée ou doit être déterminée à partir de la taille déterminée du contenu WPF.

  • Fenêtre parente.

  • HwndSourceHook à inclure dans la chaîne de procédures de fenêtre. Si vous spécifiez un crochet au moment de la construction, il reçoit tous les messages pour la fenêtre. Vous pouvez utiliser AddHook pour ajouter un hook après la création de la fenêtre.

  • Paramètres de transparence. Une fenêtre de niveau supérieur peut être configurée pour être fusionnée avec les autres fenêtres du bureau en fonction de la transparence par pixel du contenu WPF. Pour activer cette opération, définissez la UsesPerPixelOpacity propriété dans le sur HwndSourceParameterstrue. Cette propriété ne peut être spécifiée qu’au moment de la construction, et uniquement par le biais de la signature du HwndSource(HwndSourceParameters) constructeur, et elle impose plusieurs limitations.

Une fois que vous avez renseigné la HwndSourceParameters structure, passez-la au HwndSource(HwndSourceParameters) constructeur pour .HwndSource

Durée de vie des objets

Un HwndSource est un objet CLR (Common Language Runtime) normal et sa durée de vie est gérée par le garbage collector. Étant donné que représente HwndSource une ressource non managée, HwndSource implémente IDisposable. L’appel Dispose synchrone détruit immédiatement la fenêtre Win32 si elle est appelée à partir du thread propriétaire. Si elle est appelée à partir d’un autre thread, la fenêtre Win32 est détruite de manière asynchrone. L’appel Dispose explicite à partir du code d’interopérabilité peut être nécessaire pour certains scénarios d’interopérabilité.

Procédures de fenêtre

La HwndSource classe implémente sa propre procédure de fenêtre. Cette procédure de fenêtre est utilisée pour traiter les messages de fenêtre importants, tels que ceux liés à la disposition, au rendu et à l’entrée. Toutefois, vous pouvez également crocheter la procédure de fenêtre pour votre propre usage. Vous pouvez spécifier votre propre hook pendant la construction en définissant la HwndSourceParameters.HwndSourceHook propriété, ou vous pouvez également utiliser AddHook et RemoveHook pour ajouter et supprimer des crochets après la création de la fenêtre. Les hooks sont appelés par ordre de premier sorti du dernier entrant, ce qui permet à vos crochets de s’exécuter avant le traitement intégré. Les crochets réels sont maintenus par une référence faible. Par conséquent, veillez à gérer la durée de vie de votre délégué de crochet.

Pour plus d’informations sur HwndSource et d’autres classes d’interopérabilité, consultez WPF et Win32 Interoperation.

Notez comment les constructeurs pour HwndSource prendre des paramètres qui ressemblent aux paramètres des fonctions Win32 telles que CreateWindowEx.

Les transformations d’échelle ne doivent pas être appliquées au RootVisual d’un HwndSource. Consultez Remarques pour RootVisual.

Constructeurs

HwndSource(HwndSourceParameters)

Initialise une nouvelle instance de la classe HwndSource en utilisant une structure qui contient les paramètres initiaux.

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

Initialise une nouvelle instance de la classe HwndSource avec un style de classe, un style, un style étendu, une position x, y, une hauteur, une largeur, un nom et une fenêtre parente spécifiés.

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

Initialise une nouvelle instance de la classe HwndSource avec un style de classe, un style, un style étendu, une position x-y, une largeur, une hauteur, un nom et une fenêtre parente spécifiés et en indiquant si la fenêtre est redimensionnée automatiquement.

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

Initialise une nouvelle instance de la classe HwndSource avec un style de classe, un style, un style étendu, une position x, y, un nom et une fenêtre parente spécifiés.

Propriétés

AcquireHwndFocusInMenuMode

Obtient la valeur qui détermine s'il faut ou non acquérir le focus Win32 pour le WPF contenant la fenêtre pour ce HwndSource.

ChildKeyboardInputSinks

Obtient une séquence de récepteurs d'entrée enregistrés.

CompositionTarget

Obtient le gestionnaire visuel pour la fenêtre hébergée.

DefaultAcquireHwndFocusInMenuMode

Obtient ou définit la valeur AcquireHwndFocusInMenuMode par défaut des nouvelles instances de HwndSource.

Dispatcher

Obtient le Dispatcher associé à DispatcherObject.

(Hérité de DispatcherObject)
Handle

Obtient le handle de fenêtre de ce HwndSource.

IsDisposed

Obtient une valeur qui indique si Dispose() a été appelé sur ce HwndSource.

KeyboardInputSiteCore

Obtient ou définit une référence à l'interface IKeyboardInputSite du conteneur du composant.

RestoreFocusMode

Obtient le RestoreFocusMode de la fenêtre.

RootVisual

Obtient ou définit le RootVisual de la fenêtre.

SizeToContent

Obtient ou définit des informations indiquant si la fenêtre est dimensionnée en fonction de son contenu et comment.

UsesPerPixelOpacity

Obtient une valeur qui déclare si l'opacité par pixel du contenu de la fenêtre source est respectée.

Méthodes

AddHook(HwndSourceHook)

Ajoute un gestionnaire d'événements qui reçoit tous les messages de fenêtre.

AddSource()

Ajoute une instance de classe dérivée de PresentationSource à la liste des sources de présentation connues.

(Hérité de PresentationSource)
CheckAccess()

Détermine si le thread appelant a accès à ce DispatcherObject.

(Hérité de DispatcherObject)
ClearContentRenderedListeners()

Affecte à la liste d'écouteurs pour l'événement ContentRendered la valeur null.

(Hérité de PresentationSource)
CreateHandleRef()

Obtient le handle de fenêtre pour le HwndSource. Le handle de fenêtre fait partie d'une structure HandleRef.

Dispose()

Libère toutes les ressources managées utilisées par le HwndSource et déclenche l'événement Disposed.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
FromHwnd(IntPtr)

Retourne l'objet HwndSource de la fenêtre spécifiée.

GetCompositionTargetCore()

Obtient la cible visuelle de la fenêtre.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
HasFocusWithinCore()

Obtient une valeur qui indique si le récepteur ou un de ses composants contenus a le focus.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnDpiChanged(HwndDpiChangedEventArgs)

Appelé lorsque la résolution PPP va changer pour la fenêtre.

OnMnemonicCore(MSG, ModifierKeys)

Appelé lorsque l'un des mnémoniques (touches d'accès rapide) pour ce récepteur est appelé.

RegisterKeyboardInputSinkCore(IKeyboardInputSink)

Enregistre l'interface IKeyboardInputSink d'un composant contenu.

RemoveHook(HwndSourceHook)

Supprime les gestionnaires d'événements ajoutés par AddHook(HwndSourceHook).

RemoveSource()

Supprime une instance de classe, dérivée de PresentationSource, de la liste des sources de présentation connues.

(Hérité de PresentationSource)
RootChanged(Visual, Visual)

Notifie que le Visual racine a été modifié.

(Hérité de PresentationSource)
TabIntoCore(TraversalRequest)

Définit le focus sur le premier ou le dernier taquet de tabulation du récepteur.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
TranslateAcceleratorCore(MSG, ModifierKeys)

Traite l'entrée au clavier au niveau du message de touche relâchée (keydown).

TranslateCharCore(MSG, ModifierKeys)

Traite les messages d'entrée WM_CHAR, WM_SYSCHAR, WM_DEADCHAR et WM_SYSDEADCHAR avant l'appel de la méthode OnMnemonic(MSG, ModifierKeys).

VerifyAccess()

Garantit que le thread appelant a accès à DispatcherObject.

(Hérité de DispatcherObject)

Événements

AutoResized

Se produit lorsque la disposition entraîne le redimensionnement automatique du HwndSource.

ContentRendered

Se produit lorsque le contenu est affiché et prêt pour une interaction avec l'utilisateur.

(Hérité de PresentationSource)
Disposed

Se produit lorsque la méthode Dispose() est appelée sur cet objet.

DpiChanged

Se produit lorsque la résolution de l’analyse de ce Hwnd a changé, ou que le Hwnd est déplacé vers un moniteur avec une résolution différente.

SizeToContentChanged

Se produit quand la valeur de la propriété SizeToContent change.

Implémentations d’interfaces explicites

IKeyboardInputSink.HasFocusWithin()

Pour obtenir une description de ce membre, consultez IList.Remove(Object).

IKeyboardInputSink.KeyboardInputSite

Pour obtenir une description de ce membre, consultez KeyboardInputSite.

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

Pour obtenir une description de ce membre, consultez OnMnemonic(MSG, ModifierKeys).

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

Pour obtenir une description de ce membre, consultez RegisterKeyboardInputSink(IKeyboardInputSink).

IKeyboardInputSink.TabInto(TraversalRequest)

Pour obtenir une description de ce membre, consultez TabInto(TraversalRequest).

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

Pour obtenir une description de ce membre, consultez TranslateAccelerator(MSG, ModifierKeys).

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

Pour obtenir une description de ce membre, consultez TranslateChar(MSG, ModifierKeys).

S’applique à

Voir aussi