HwndSource Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 HwndSourceParameters
true
. 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 |
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). |