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 le contenu WINDOWS Presentation Foundation (WPF) 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.
Implémente HwndSource 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 pour l’entrée. Étant donné que la HwndSource classe est spécifiquement conçue 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.
Raccordez 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 wrapper HWND managé. En général, il ne fournit pas de méthodes managées pour manipuler la fenêtre ou les 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 transmis par le biais de techniques PInvoke aux API Win32 afin de manipuler la fenêtre.
Construction
De nombreux aspects de la construction HwndSource ne peuvent être spécifiés qu’au moment de la construction. Pour créer une HwndSourcestructure, commencez par créer une HwndSourceParameters structure et remplissez-la avec les paramètres souhaités. Ces paramètres incluent les éléments suivants :
Styles de fenêtre, de classe, de fenêtre et étendus. Vous devez utiliser PInvoke pour modifier les styles une fois la fenêtre créée. Tous les styles ne peuvent pas être modifiés une fois la fenêtre créée. 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 inclut 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édure de fenêtre. Si vous spécifiez un hook au moment de la construction, il reçoit tous les messages de la fenêtre. Vous pouvez utiliser AddHook pour ajouter un hook une fois la fenêtre créée.
Paramètres de transparence. Une fenêtre de niveau supérieur peut être configurée pour fusionner avec les autres fenêtres du bureau en fonction de la transparence par pixel du contenu WPF. Pour l’activer, définissez la UsesPerPixelOpacity propriété dans la HwndSourceParameters
truevaleur . 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.
Après avoir renseigné la HwndSourceParameters structure, passez-la au HwndSource(HwndSourceParameters) constructeur pour le HwndSource.
Durée de vie de l’objet
Il HwndSource s’agit d’un objet CLR (Common Language Runtime) standard et sa durée de vie est gérée par le garbage collector. Étant donné que le HwndSource représente 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 façon 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 des messages de fenêtre importants, tels que ceux liés à la disposition, au rendu et à l’entrée. Toutefois, vous pouvez également raccorder la procédure de fenêtre pour votre propre utilisation. Vous pouvez spécifier votre propre crochet pendant la construction en définissant la HwndSourceParameters.HwndSourceHook propriété, ou vous pouvez également utiliser AddHook et RemoveHook ajouter et supprimer des crochets une fois la fenêtre créée. Les crochets sont appelés par ordre de premier sorti dernier, ce qui permet à vos hooks d’être exécutés avant le traitement intégré. Les crochets réels sont conservés par une référence faible. Par conséquent, assurez-vous de gérer la durée de vie de votre délégué de hook.
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 de mise à l’échelle HwndSourcene doivent pas être appliquées à un RootVisual . Voir les remarques pour RootVisual.
Constructeurs
| Nom | Description |
|---|---|
| HwndSource(HwndSourceParameters) |
Initialise une nouvelle instance de la classe à l’aide HwndSource d’une structure qui contient les paramètres initiaux. |
| HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr, Boolean) |
Initialise une nouvelle instance de la HwndSource classe 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ées, et en spécifiant si la fenêtre est automatiquement mise en forme. |
| HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr) |
Initialise une nouvelle instance de la HwndSource classe 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ées. |
| HwndSource(Int32, Int32, Int32, Int32, Int32, String, IntPtr) |
Initialise une nouvelle instance de la HwndSource classe avec un style de classe, un style, un style étendu, une position x-y, un nom et une fenêtre parente spécifiées. |
Propriétés
| Nom | Description |
|---|---|
| AcquireHwndFocusInMenuMode |
Obtient la valeur qui détermine s’il faut acquérir le focus Win32 pour la fenêtre WPF contenant cette HwndSourcevaleur . |
| ChildKeyboardInputSinks |
Obtient une séquence de récepteurs d’entrée inscrits. |
| CompositionTarget |
Obtient le gestionnaire visuel de la fenêtre hébergée. |
| DefaultAcquireHwndFocusInMenuMode |
Obtient ou définit la valeur par défaut AcquireHwndFocusInMenuMode pour les nouvelles instances de HwndSource. |
| Dispatcher |
Obtient ce Dispatcher qui DispatcherObject est associé. (Hérité de DispatcherObject) |
| Handle |
Obtient le handle de fenêtre pour ce HwndSource. |
| IsDisposed |
Obtient une valeur qui indique si Dispose() elle a été appelée sur ce HwndSourcefichier . |
| KeyboardInputSiteCore |
Obtient ou définit une référence à l’interface du conteneur du IKeyboardInputSite composant. |
| RestoreFocusMode |
Obtient la RestoreFocusMode fenêtre. |
| RootVisual |
Obtient ou définit la RootVisual fenêtre. |
| SizeToContent |
Obtient ou définit si la fenêtre est dimensionnée sur son contenu. |
| UsesPerPixelOpacity |
Obtient une valeur qui déclare si l’opacité par pixel du contenu de la fenêtre source est respectée. |
Méthodes
| Nom | Description |
|---|---|
| AddHook(HwndSourceHook) |
Ajoute un gestionnaire d’événements qui reçoit tous les messages de fenêtre. |
| AddSource() |
Ajoute une PresentationSource instance de classe dérivée à la liste des sources de présentation connues. (Hérité de PresentationSource) |
| CheckAccess() |
Détermine si le thread appelant a accès à ce DispatcherObjectfichier . (Hérité de DispatcherObject) |
| ClearContentRenderedListeners() |
Définit la liste des écouteurs pour l’événement ContentRendered sur |
| CreateHandleRef() |
Obtient le handle de fenêtre pour le HwndSource. Le handle de fenêtre est empaqueté dans le cadre d’une HandleRef structure. |
| Dispose() |
Libère toutes les ressources managées utilisées par l’événement HwndSourceet 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() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| HasFocusWithinCore() |
Obtient une valeur qui indique si le récepteur ou l’un de ses composants contenus a le focus. |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| OnDpiChanged(HwndDpiChangedEventArgs) |
Appelé lorsque l’ppp va changer pour la fenêtre. |
| OnMnemonicCore(MSG, ModifierKeys) |
Appelé lorsqu’un des mnémoniques (clés d’accès) de ce récepteur est appelé. |
| RegisterKeyboardInputSinkCore(IKeyboardInputSink) |
Inscrit l’interface IKeyboardInputSink d’un composant autonome. |
| RemoveHook(HwndSourceHook) |
Supprime les gestionnaires d’événements qui ont été ajoutés par AddHook(HwndSourceHook). |
| RemoveSource() |
Supprime une PresentationSource instance de classe dérivée de la liste des sources de présentation connues. (Hérité de PresentationSource) |
| RootChanged(Visual, Visual) |
Fournit une notification indiquant que la racine Visual a changé. (Hérité de PresentationSource) |
| TabIntoCore(TraversalRequest) |
Définit le focus sur le premier taquet de tabulation ou sur 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 du clavier au niveau du message de bas de touche. |
| TranslateCharCore(MSG, ModifierKeys) |
Traite WM_CHAR, WM_SYSCHAR, WM_DEADCHAR et WM_SYSDEADCHAR messages d’entrée avant l’appel de la OnMnemonic(MSG, ModifierKeys) méthode. |
| VerifyAccess() |
Applique que le thread appelant a accès à ce DispatcherObjectfichier . (Hérité de DispatcherObject) |
Événements
| Nom | Description |
|---|---|
| AutoResized |
Se produit lorsque la disposition entraîne le HwndSource redimensionnement automatique. |
| ContentRendered |
Se produit lorsque le contenu est rendu et prêt pour l’interaction utilisateur. (Hérité de PresentationSource) |
| Disposed |
Se produit lorsque la Dispose() méthode est appelée sur cet objet. |
| DpiChanged |
Se produit lorsque l’ppp du moniteur de ce Hwnd a changé ou que le Hwnd est déplacé vers un moniteur avec un autre PPP. |
| SizeToContentChanged |
Se produit quand la valeur de la propriété SizeToContent change. |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| 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). |