Partager via


Vue d'ensemble des modèles de contrôle UI Automation

Remarque

Cette documentation est destinée 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 informations les plus récentes 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 classer 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 des comportements de contrôle courants. Par exemple, vous utilisez le modèle de contrôle Invoquer pour les contrôles qui peuvent être invoqués (tels que les boutons) et le modèle de contrôle Scroll pour les contrôles qui ont des barres de défilement (tels que des zones de liste, des vues de liste ou des boîtes de liste déroulante). Étant donné que chaque modèle de contrôle représente une fonctionnalité distincte, ils peuvent être combinés pour décrire l’ensemble complet de fonctionnalités prises en charge par un contrôle particulier.

Remarque

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 ses parents, enfants et 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 sur l’état du contrôle.

Les modèles de contrôle sont liés à l’interface utilisateur en tant qu’interfaces liées aux objets COM (Component Object Model). Dans COM, vous pouvez interroger un objet pour demander quelles interfaces il prend en charge, puis utiliser ces interfaces pour accéder aux fonctionnalités. Dans UI Automation, les clients peuvent demander à un contrôle quels modèles de contrôle il prend en charge, puis interagir avec le contrôle via les propriétés, méthodes, événements et structures exposées par ces 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 modèle de contrôle prend en charge le ScrollPattern modèle de contrôle, il peut utiliser les propriétés, méthodes et événements exposés par ce modèle de contrôle pour manipuler le contrôle ou accéder aux informations sur le contrôle.

Fournisseurs et clients d'automatisation de l'interface utilisateur

Les fournisseurs UI Automation implémentent des modèles de contrôle pour exposer le comportement approprié pour 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èles de contrôle UI Automation et les utilisent pour obtenir des informations sur l’interface utilisateur ou pour manipuler l’interface utilisateur. Ces classes de modèle de contrôle se trouvent dans l’espace System.Windows.Automation de noms (par exemple, InvokePattern et SelectionPattern).

Les clients utilisent des méthodes AutomationElement (telles que AutomationElement.GetCurrentPropertyValue ou AutomationElement.GetCachedPropertyValue) ou les accesseurs du CLR (Common Language Runtime) pour accéder aux propriétés d'UI Automation dans un modèle. Chaque classe de modèle de contrôle a un membre de champ (par exemple, InvokePattern.Pattern ou SelectionPattern.Pattern) qui identifie ce modèle de contrôle et peut être transmis 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 pris en charge lorsqu’ils sont disponibles pour un client UI Automation. Par exemple, une zone d’édition multiligne active le défilement vertical uniquement lorsqu’elle contient plus de lignes de texte que celles qui peuvent être affichées dans sa zone visible. Le défilement est désactivé lorsque suffisamment de texte est supprimé afin que le défilement ne soit plus nécessaire. Pour cet exemple, le modèle de contrôle ScrollPattern est pris en charge dynamiquement en fonction de l’état actuel du contrôle (quantité de texte dans la zone d’édition).

Classes et interfaces de modèle de contrôle

Le tableau suivant décrit les modèles de contrôle UI Automation. Le tableau 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 de modèle de contrôle Interface du fournisseur Descriptif
DockPattern IDockProvider Utilisé 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 d’une application, tels que le menu Fichier .
GridPattern IGridProvider Utilisé pour les contrôles qui prennent en charge les fonctionnalités de grille, telles que le dimensionnement et le déplacement vers une cellule spécifiée. Par exemple, l’affichage d’icônes volumineux dans l’Explorateur Windows ou les tables simples sans en-têtes dans Microsoft Word.
GridItemPattern IGridItemProvider Utilisé pour les contrôles qui comportent des cellules au sein des grilles. Les cellules individuelles doivent prendre en charge le modèle GridItem. Par exemple, chaque cellule dans la vue détaillée de l’Explorateur Microsoft Windows.
InvokePattern IInvokeProvider Utilisé pour les contrôles qui peuvent être appelés, tels qu’un bouton.
MultipleViewPattern IMultipleViewProvider Utilisé 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 d’affichage de liste dans lequel les données sont disponibles dans les vues miniature, vignette, icône, liste ou détail.
RangeValuePattern IRangeValueProvider Utilisé pour les contrôles qui ont une plage de valeurs qui peuvent être appliquées au contrôle. Par exemple, un contrôle spinner contenant des années peut avoir une plage de 1900 à 2010, tandis qu’un autre contrôle spinner présentant des mois aurait une plage de 1 à 12.
ScrollPattern IScrollProvider Utilisé pour les contrôles qui peuvent défiler. Par exemple, un contrôle qui a des barres de défilement actives lorsqu’il existe plus d’informations qu’il ne peut être affiché dans la zone visible du contrôle.
ScrollItemPattern IScrollItemProvider Utilisé pour les contrôles qui ont des éléments individuels dans une liste qui défile. Par exemple, un contrôle de liste contenant des éléments distincts dans la liste de défilement, tel qu'une boîte combo.
SelectionPattern ISelectionProvider Utilisé pour les contrôles de conteneur de sélection. Par exemple, les zones de liste et zones de liste modifiable.
SelectionItemPattern ISelectionItemProvider Utilisé pour les éléments individuels dans les contrôles de sélection de conteneur, tels que les boîtes de liste et les boîtes combinées.
TablePattern ITableProvider Utilisé pour les contrôles qui ont une grille ainsi que des informations d’en-tête. Par exemple, les feuilles de calcul Microsoft Excel.
TableItemPattern ITableItemProvider Utilisé pour les éléments d’un tableau.
TextPattern ITextProvider Utilisé pour modifier des contrôles et des documents qui exposent des informations textuelles.
TogglePattern IToggleProvider Utilisé pour les contrôles où l’état peut être basculé. Par exemple, les cases à cocher et les options de menu cochables.
TransformPattern ITransformProvider Utilisé pour les contrôles qui peuvent être redimensionnés, déplacés et pivotés. Les utilisations classiques du modèle de contrôle Transform sont 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 à Windows, un concept fondamental au système d’exploitation Microsoft Windows. Des exemples de contrôles windows sont des fenêtres d’application de niveau supérieur (Microsoft Word, Microsoft Windows Explorer, et ainsi de suite), des fenêtres enfants multi-documents (MDI) et des boîtes de dialogue.

Voir aussi