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

Un modèle de contrôle est une implémentation d’interface qui expose un aspect particulier des fonctionnalités d’un contrôle aux applications clientes Microsoft UI Automation. Les clients utilisent les propriétés et méthodes exposées via un modèle de contrôle pour récupérer des informations sur une fonctionnalité particulière du contrôle ou pour manipuler un aspect particulier du comportement du contrôle. Par exemple, un contrôle qui présente une interface tabulaire utilise le modèle de contrôle Grid pour exposer le nombre de lignes et de colonnes dans la table, et pour permettre à un client de récupérer des éléments de la table.

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 Appeler 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 ont des barres de défilement, telles que des zones de liste, des affichages de liste ou des zones de liste déroulante. Étant donné que chaque modèle de contrôle représente une fonctionnalité distincte, les modèles de contrôle peuvent être combinés pour décrire l’ensemble complet des fonctionnalités prises en charge par un contrôle particulier.

Notes

Un contrôle d’agrégation est créé avec des contrôles enfants qui fournissent l’interface utilisateur pour les fonctionnalités exposées par le parent, et le parent doit implémenter tous les modèles de contrôle qui sont généralement associés à ses contrôles enfants. 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.

 

Cette rubrique contient les sections suivantes :

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.

  • 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 et l’état du 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 modèles de contrôle se rapportent à des contrôles similaires à la façon dont les interfaces sont 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és par les modèles de contrôle pris en charge.

Modèles de contrôle dans les fournisseurs et les clients

UI Automation fournisseurs implémentent des interfaces de modèle de contrôle pour exposer le comportement approprié pour une fonctionnalité spécifique prise en charge par le contrôle. Ces interfaces ne sont pas directement exposées aux clients, mais sont utilisées par le UI Automation cœur pour implémenter un autre ensemble d’interfaces clientes. Par exemple, un fournisseur expose la fonctionnalité de défilement à UI Automation via IScrollProvider, et UI Automation expose les fonctionnalités aux clients via IUIAutomationScrollPattern.

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. Par exemple, un contrôle d’édition multiligne active le défilement vertical uniquement lorsqu’il contient plus de lignes de texte que ne peut être affiché dans sa zone visible. Le défilement est désactivé lorsque tout le texte peut s’afficher dans la zone prévue à cet effet. Pour cet exemple, IUIAutomationScrollPattern est pris en charge dynamiquement, en fonction de la quantité de texte dans la zone d’édition.

Le tableau suivant décrit les modèles de contrôle UI Automation. Le tableau répertorie également les interfaces de fournisseur utilisées pour implémenter les modèles de contrôle, ainsi que les interfaces clientes utilisées pour y accéder.

Name Interface du fournisseur Interface client Description
Annotation IAnnotationProvider IUIAutomationAnnotationPattern Permet d’exposer les propriétés d’une annotation dans un document, par exemple les commentaires dans la marge qui sont connectés au texte du document.
Dock IDockProvider IUIAutomationDockPattern Utilisé pour les contrôles qui peuvent être ancrés dans un conteneur d’ancrage, par exemple, des barres d’outils ou des palettes d’outils.
Faites glisser IDragProvider IUIAutomationDragPattern Utilisé pour prendre en charge les contrôles pouvant être glissés, ou les contrôles qui comportent des éléments pouvant être glissés.
DropTarget IDropTargetProvider IUIAutomationDropTargetPattern Utilisé pour prendre en charge les contrôles qui peuvent être la cible d’une opération glisser-déplacer.
ExpandCollapse IExpandCollapseProvider IUIAutomationExpandCollapsePattern Utilisé 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.
Grid IGridProvider IUIAutomationGridPattern 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 volumineuses dans Windows Explorer ou des tableaux simples dans Microsoft Office Word.
GridItem IGridItemProvider IUIAutomationGridItemPattern Utilisé pour les contrôles qui ont des cellules dans des grilles. Les cellules individuelles doivent prendre en charge le modèle GridItem, par exemple, chaque cellule de Windows Explorer vue détaillée.
Appeler IInvokeProvider IUIAutomationInvokePattern Utilisé pour les contrôles qui peuvent être appelés, tels que les boutons.
ItemContainer IItemContainerProvider IUIAutomationItemContainerPattern Utilisé pour les contrôles qui peuvent contenir d’autres éléments.
LegacyIAccessible ILegacyIAccessibleProvider IUIAutomationLegacyIAccessiblePattern Permet d’exposer les propriétés et méthodes Microsoft Active Accessibility aux clients UI Automation.
MultipleView IMultipleViewProvider IUIAutomationMultipleViewPattern Utilisé pour les contrôles qui peuvent basculer entre plusieurs représentations d’un même ensemble d’informations, de données ou d’enfants, par exemple, un contrôle d’affichage de liste où les données sont disponibles dans des vues miniatures, vignettes, icônes, liste ou détails.
ObjectModel IObjectModelProvider IUIAutomationObjectModelPattern Utilisé pour exposer un pointeur à un modèle objet sous-jacent d’un document. Ce modèle de contrôle permet à un client de naviguer à partir d’un élément UI Automation dans le modèle objet sous-jacent.
RangeValue IRangeValueProvider IUIAutomationRangeValuePattern Utilisé pour les contrôles qui ont une plage de valeurs. Par exemple, un contrôle spinner qui affiche des années peut avoir une plage comprise entre 1900 et 2010, tandis qu’un contrôle spinner qui affiche des mois aurait une plage comprise entre 1 et 12.
Faire défiler IScrollProvider IUIAutomationScrollPattern Utilisé pour les contrôles qui peuvent faire défiler quand il y a plus d’informations que peuvent être affichées dans la zone visible du contrôle.
ScrollItem IScrollItemProvider IUIAutomationScrollItemPattern Utilisé pour les contrôles qui ont des éléments individuels dans une liste qui fait défiler, par exemple, un contrôle de liste dans un contrôle de zone de liste déroulante.
Sélection ISelectionProvider IUIAutomationSelectionPattern Utilisé pour les contrôles de conteneur de sélection, par exemple, les zones de liste et les zones de liste déroulante.
SelectionItem ISelectionItemProvider IUIAutomationSelectionItemPattern 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.
Feuille de calcul ISpreadsheetProvider IUIAutomationSpreadsheetPattern Utilisé pour exposer le contenu d’une feuille de calcul ou d’un autre document de type grille. Les contrôles qui implémentent le modèle de contrôle Feuille de calcul doivent également implémenter le modèle de contrôle Grid.
SpreadsheetItem ISpreadsheetItemProvider IUIAutomationSpreadsheetItemPattern Utilisé pour exposer les propriétés d’une cellule se trouvant dans une feuille de calcul ou un autre document de type grille. Les contrôles qui implémentent le modèle de contrôle SpreadsheetItem doivent également implémenter le modèle de contrôle GridItem.
Styles IStylesProvider IUIAutomationStylesPattern Utilisé pour décrire un élément d’interface utilisateur ayant un style, une couleur de remplissage, un motif de remplissage ou une forme spécifiques.
SynchronizedInput ISynchronizedInputProvider IUIAutomationSynchronizedInputPattern Utilisé pour les contrôles qui acceptent l’entrée au clavier ou à la souris.
Table ITableProvider IUIAutomationTablePattern Utilisé pour les contrôles qui ont une grille et des informations d’en-tête.
TableItem ITableItemProvider IUIAutomationTableItemPattern Utilisées pour les éléments d’une table.
Text ITextProvider IUIAutomationTextPattern Utilisées pour les contrôles d’édition et les documents qui exposent des informations textuelles.
TextEdit ITextEditProvider IUIAutomationTextEditPattern Utilisé pour les contrôles de modification qui modifient du texte par programmation, par exemple un contrôle qui effectue la correction automatique ou active la composition d’entrée.
TextChild ITextChildProvider IUIAutomationTextChildPattern Utilisé pour accéder à l’ancêtre le plus proche d’un élément qui prend en charge le modèle de contrôle Text.
TextRange ITextRangeProvider IUIAutomationTextRange Utilisé pour récupérer du contenu textuel, des attributs de texte et des objets incorporés à partir de contrôles textuels tels que les contrôles de modification et les documents.
Bascule IToggleProvider IUIAutomationTogglePattern Utilisé pour les contrôles où l’état peut être activé, par exemple, case activée zones et les éléments de menu à cocher.
Transformer ITransformProvider IUIAutomationTransformPattern 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.
Valeur IValueProvider IUIAutomationValuePattern Utilisé pour les contrôles qui ont une valeur qui ne se trouve pas dans une plage spécifiée, par exemple un sélecteur de date et d’heure.
VirtualizedItem IVirtualizedItemProvider IUIAutomationVirtualizedItemPattern Utilisé pour les contrôles qui fonctionnent avec des éléments d’une liste virtuelle.
Window IWindowProvider IUIAutomationWindowPattern Utilisé pour les fenêtres. Par exemple, les fenêtres d’application de niveau supérieur, les fenêtres enfants MDI (Multi-Document Interface) et les boîtes de dialogue.

 

Conceptuel

Implémentation de modèles de contrôle UI Automation

Mappage de modèle de contrôle pour les clients UI Automation