Partager via


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

RemarqueRemarque

Cette documentation s'adresse aux développeurs .NET Framework qui veulent 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 (page éventuellement en anglais).

Cette vue d'ensemble présente des 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 vues liste ou les zones de liste déroulante). Étant donné que chaque modèle de contrôle représente une fonctionnalité distincte, il est possible de les combiner pour décrire le jeu complet de fonctionnalités prises en charge par un contrôle spécifique.

RemarqueRemarque

Les contrôles d'agrégat (générés avec des contrôles enfants qui fournissent l'user interface (UI) 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 implémentés par les contrôles enfants.

 

Cette rubrique comprend les sections suivantes.

  • Composants des modèles de contrôle UI Automation
  • Fournisseurs et clients UI Automation
  • Modèles de contrôle dynamique
  • Interfaces et classes du modèle de contrôle
  • Rubriques connexes

 

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 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 liés à l'UI comme les interfaces sont liées aux objets Component Object Model (COM). Dans COM, vous pouvez faire une requête sur un objet pour connaître les interfaces qu'il prend en charge, puis utiliser 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 du modèle de contrôle UI Automation et les utilisent pour obtenir des informations sur l'UI ou manipuler l'UI. Ces classes du 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 du common language runtime (CLR) pour accéder aux propriétés UI Automation dans 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 jeu de modèles de contrôle. On considère que 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 ne permet un défilement vertical que lorsqu'elle contient plus de lignes de texte qu'on ne peut en afficher dans 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 selon 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. 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 du modèle de contrôle

Interface du fournisseur

Description

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é 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é 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, mode Grandes icônes dans l'Explorateur Windows ou tableaux simples sans en-têtes dans Microsoft Word.

GridItemPattern

IGridItemProvider

Utilisé 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 Microsoft Windows Explorer.

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 jeu 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é 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 de 1900 à 2010, alors qu'un autre contrôle Spinner représentant des mois aura une plage de 1 à 12.

ScrollPattern

IScrollProvider

Utilisé pour les contrôles qui peuvent défiler. Par exemple, un contrôle qui dispose de barres de défilement actives lorsque la quantité d'informations est trop importante pour être affichée dans la zone affichable du contrôle.

ScrollItemPattern

IScrollItemProvider

Utilisé 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é pour les contrôles conteneur de sélection. Par exemple, les zones de liste et zones de liste déroulante.

SelectionItemPattern

ISelectionItemProvider

Utilisé pour les éléments individuels dans les contrôles conteneur de sélection, tels que les zones de liste et zones de liste déroulante.

TablePattern

ITableProvider

Utilisé pour les contrôles qui disposent d'une grille et d'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 les contrôles d'édition et les documents qui exposent des informations textuelles.

TogglePattern

IToggleProvider

Utilisé pour les contrôles dans lesquels il est possible de faire basculer l'état. Par exemple, les cases à cocher et les éléments de menu sélectionnables.

TransformPattern

ITransformProvider

Utilisé pour les contrôles qui peuvent être redimensionnés, déplacés et pivotés. Les principales utilisations du modèle de contrôle Transform se font dans les applications de conception et de dessin, les formulaires et les éditeurs graphiques.

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 date/heure.

WindowPattern

IWindowProvider

Expose des informations spécifiques aux fenêtres, un concept fondamental du système d'exploitation Microsoft Windows. Les fenêtres d'application de niveau supérieur (Microsoft Word, Microsoft Windows Explorer, etc.), les fenêtres enfants multiple-document interface (MDI) et les boîtes de dialogue sont des exemples de contrôles qui sont en fait des fenêtres.

Voir aussi

Concepts

Modèles de contrôle UI Automation pour les clients

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

Vue d'ensemble d'UI Automation

Propriétés UI Automation pour les clients

Événements UI Automation pour les clients