Vue d'ensemble des modèles de contrôle UI Automation
Notes
Cette documentation s’adresse aux développeurs .NET Framework qui souhaitent utiliser les classes UI Automation managées définies dans l’espace de noms System.Windows.Automation. Pour obtenir les dernières informations sur UI Automation, consultez API Windows Automation : UI Automation.
Cette vue d’ensemble présente les modèles de contrôle Microsoft UI Automation. Les modèles de contrôle permettent de catégoriser et d'exposer les fonctionnalités d'un contrôle, indépendamment du type de contrôle ou de l'apparence du contrôle.
UI Automation utilise des modèles de contrôle pour représenter les comportements de contrôle courants. Par exemple, vous utilisez le modèle de contrôle Invoke pour les contrôles qui peuvent être appelés (tels que les boutons) et le modèle de contrôle Scroll pour les contrôles qui disposent de barres de défilement (tels que les zones de liste, les affichages de liste ou les zones de liste modifiables). Étant donné que chaque modèle de contrôle représente une fonctionnalité distincte, il est possible de les combiner pour décrire l’ensemble complet de fonctionnalités prises en charge par un contrôle particulier.
Notes
Les contrôles d’agrégat (générés avec des contrôles enfants qui fournissent l’interface utilisateur (IU) pour les fonctionnalités exposées par le parent) doivent implémenter tous les modèles de contrôle normalement associés à chaque contrôle enfant. Il n’est pas nécessaire que ces mêmes modèles de contrôle soient, à leur tour, implémentés par les contrôles enfants.
Composants des modèles de contrôle UI Automation
Les modèles de contrôle prennent en charge les méthodes, les propriétés, les événements et les relations nécessaires pour définir une partie discrète des fonctionnalités disponibles dans un contrôle.
La relation entre un élément UI Automation et son parent, ses enfants et ses frères décrit la structure de l’élément dans l’arborescence UI Automation.
Les méthodes permettent aux clients UI Automation de manipuler le contrôle.
Les propriétés et les événements fournissent des informations sur les fonctionnalités du modèle de contrôle, ainsi que des informations sur l’état du contrôle.
Les modèles de contrôle sont à l’interface utilisateur ce que les interfaces sont aux objets COM (Component Object Model). Dans COM, vous pouvez interroger un objet et lui demander quelles interfaces il prend en charge, puis vous servir de ces interfaces pour accéder aux fonctionnalités. Dans UI Automation, les clients UI Automation peuvent demander à un contrôle les modèles de contrôle qu’il prend en charge, puis interagir avec le contrôle via les propriétés, les méthodes, les événements et les structures exposées par les modèles de contrôle pris en charge. Par exemple, pour une zone d’édition multiligne, les fournisseurs UI Automation implémentent IScrollProvider. Lorsqu’un client sait qu’un AutomationElement prend en charge le modèle de contrôle ScrollPattern , il peut utiliser les propriétés, les méthodes et les événements exposés par ce modèle de contrôle pour manipuler le contrôle ou accéder aux informations concernant le contrôle.
Fournisseurs et clients UI Automation
Les fournisseurs UI Automation implémentent des modèles de contrôle pour exposer le comportement approprié d’une partie spécifique des fonctionnalités prises en charge par le contrôle.
Les clients UI Automation accèdent aux méthodes et aux propriétés des classes de modèle de contrôle UI Automation et les utilisent pour obtenir des informations sur l’IU ou pour manipuler l’IU. Ces classes de modèle de contrôle se trouvent dans l’espace de noms System.Windows.Automation (par exemple, InvokePattern et SelectionPattern).
Les clients utilisent des méthodes AutomationElement (telles que AutomationElement.GetCurrentPropertyValue ou AutomationElement.GetCachedPropertyValue) ou les accesseurs CLR (Common Language Runtime) pour accéder aux propriétés UI Automation sur un modèle. Chaque classe de modèle de contrôle dispose d’un membre de champ (par exemple, InvokePattern.Pattern ou SelectionPattern.Pattern) qui identifie ce modèle de contrôle et peut être passé en tant que paramètre à GetCachedPattern ou GetCurrentPattern pour récupérer ce modèle pour un AutomationElement.
Modèles de contrôle dynamique
Certains contrôles ne prennent pas toujours en charge le même ensemble de modèles de contrôle. Les modèles de contrôle sont considérés comme pris en charge lorsqu’ils sont disponibles pour un client UI Automation. Par exemple, une zone d’édition multiligne ne permet un défilement vertical que lorsqu’elle contient plus de lignes de texte que ne peut en afficher sa zone affichable. Le défilement est désactivé lorsque tout le texte peut s’afficher dans la zone prévue à cet effet. Pour cet exemple, le modèle de contrôle ScrollPattern est pris en charge de manière dynamique en fonction de l’état actuel du contrôle (la quantité de texte présente dans la zone d’édition).
Interfaces et classes du modèle de contrôle
Le tableau suivant décrit les modèles de contrôle UI Automation. Il répertorie également les classes utilisées par les clients UI Automation pour accéder aux modèles de contrôle, ainsi que les interfaces utilisées par les fournisseurs UI Automation pour les implémenter.
Classe du modèle de contrôle | Interface du fournisseur | Description |
---|---|---|
DockPattern | IDockProvider | Utilisées pour les contrôles qui peuvent être ancrés dans un conteneur d’ancrage. Par exemple, les barres d’outils ou les palettes d’outils. |
ExpandCollapsePattern | IExpandCollapseProvider | Utilisées pour les contrôles qui peuvent être développés ou réduits. Par exemple, les éléments de menu dans une application, comme le menu Fichier . |
GridPattern | IGridProvider | Utilisées pour les contrôles qui prennent en charge des fonctionnalités de grille telles que le dimensionnement et le déplacement vers une cellule spécifiée. Par exemple, le mode Grandes icônes dans l’Explorateur Windows ou les tableaux simples sans en-têtes dans Microsoft Word. |
GridItemPattern | IGridItemProvider | Utilisées pour les contrôles dont les grilles contiennent des cellules. Les cellules individuelles doivent prendre en charge le modèle GridItem. Par exemple, chaque cellule de l’affichage Détails de l’Explorateur Microsoft Windows. |
InvokePattern | IInvokeProvider | Utilisées pour les contrôles qui peuvent être appelés, tel qu’un bouton. |
MultipleViewPattern | IMultipleViewProvider | Utilisées pour les contrôles qui peuvent basculer entre plusieurs représentations du même ensemble d’informations, de données ou d’enfants. Par exemple, un contrôle list view où les données sont disponibles en affichage Miniatures, Mosaïques, Icônes, Liste ou Détails. |
RangeValuePattern | IRangeValueProvider | Utilisées pour les contrôles disposant d’une plage de valeurs qui peut s’appliquer au contrôle. Par exemple, un contrôle spinner contenant des années peut avoir une plage comprise entre 1900 et 2010, alors qu’un autre contrôle spinner représentant des mois aura une plage comprise entre 1 et 12. |
ScrollPattern | IScrollProvider | Utilisées pour les contrôles qui peuvent défiler. Par exemple, un contrôle disposant de barres de défilement qui sont actives lorsque la quantité d’informations est trop importante pour être affichée dans la zone affichable du contrôle. |
ScrollItemPattern | IScrollItemProvider | Utilisées pour les contrôles qui disposent d’éléments individuels dans une liste déroulante. Par exemple, un contrôle de liste qui dispose d’éléments individuels dans la liste déroulante, comme un contrôle zone de liste déroulante. |
SelectionPattern | ISelectionProvider | Utilisées pour les contrôles conteneur de sélection. Par exemple, les zones de liste et zones de liste modifiable. |
SelectionItemPattern | ISelectionItemProvider | Utilisées pour les éléments individuels dans les contrôles conteneur de sélection, tels que les zones de liste et zones de liste modifiables. |
TablePattern | ITableProvider | Utilisées pour les contrôles qui disposent d’une grille ainsi que d’informations d’en-tête. Par exemple, les feuilles de calcul Microsoft Excel. |
TableItemPattern | ITableItemProvider | Utilisées pour les éléments d’une table. |
TextPattern | ITextProvider | Utilisées pour les contrôles d’édition et les documents qui exposent des informations textuelles. |
TogglePattern | IToggleProvider | Utilisées pour les contrôles dont l’état peut être activé et désactivé. Par exemple, les cases à cocher et les éléments de menu pouvant être activés. |
TransformPattern | ITransformProvider | Utilisées pour les contrôles qui peuvent être redimensionnés, déplacés et pivotés. Les utilisations courantes du modèle de contrôle Transform se font dans les concepteurs, les formulaires les éditeurs graphiques et les applications de dessin. |
ValuePattern | IValueProvider | Permet aux clients d’obtenir ou de définir une valeur sur des contrôles qui ne prennent pas en charge une plage de valeurs. Par exemple, un sélecteur de date et heure. |
WindowPattern | IWindowProvider | Expose des informations spécifiques aux fenêtres, concept fondamental du système d’exploitation Microsoft Windows. Voici quelques exemples de contrôles qui sont des fenêtres d’application de niveau supérieur (Microsoft Word, Microsoft Windows Explorer, et ainsi de suite), des fenêtres enfants d’interface multidocument (MDI) et des boîtes de dialogue. |