Vue d'ensemble des modèles de contrôle UI AutomationUI Automation Control Patterns Overview

Notes

Cette documentation s'adresse aux développeurs .NET Framework qui souhaitent utiliser les classes Automation de l'interface utilisateurUI Automation managées définies dans l'espace de noms System.Windows.Automation.This documentation is intended for .NET Framework developers who want to use the managed Automation de l'interface utilisateurUI Automation classes defined in the System.Windows.Automation namespace. Pour obtenir les informations les Automation de l'interface utilisateurUI Automationplus récentes sur, consultez API Windows Automation: UI Automation.For the latest information about Automation de l'interface utilisateurUI Automation, see Windows Automation API: UI Automation.

Cette vue d’ensemble présente les modèles de contrôle Microsoft UI AutomationMicrosoft UI Automation .This overview introduces Microsoft UI AutomationMicrosoft UI Automation control patterns. 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.Control patterns provide a way to categorize and expose a control's functionality independent of the control type or the appearance of the control.

Automation de l'interface utilisateurUI Automation utilise des modèles de contrôle pour représenter les comportements de contrôle courants.uses control patterns to represent common control behaviors. 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).For example, you use the Invoke control pattern for controls that can be invoked (such as buttons) and the Scroll control pattern for controls that have scroll bars (such as list boxes, list views, or combo boxes). É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.Because each control pattern represents a separate functionality, they can be combined to describe the full set of functionality supported by a particular control.

Notes

Les contrôles d’agrégat (générés avec des contrôles enfants qui fournissent l’ interface utilisateur (UI)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.Aggregate controls—built with child controls that provide the interface utilisateur (UI)user interface (UI) for functionality exposed by the parent—should implement all control patterns normally associated with each child control. 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.In turn, those same control patterns are not required to be implemented by the child controls.

Composants des modèles de contrôle UI AutomationUI Automation Control Pattern Components

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.Control patterns support the methods, properties, events, and relationships needed to define a discrete piece of functionality available in a control.

  • 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 Automation de l'interface utilisateurUI Automation .The relationship between a UI Automation element and its parent, children and siblings describes the element's structure within the Automation de l'interface utilisateurUI Automation tree.

  • Les méthodes permettent aux clients UI Automation de manipuler le contrôle.The methods allow UI Automation clients to manipulate the control.

  • 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.The properties and events provide information about the control pattern's functionality as well as information about the state of the control.

Les modèles de contrôle Interface utilisateurUI sont liés à car les interfaces sont liées aux objets COM (Component Object Model).Control patterns relate to Interface utilisateurUI as interfaces relate to Component Object Model (COM) objects. Dans COM, vous pouvez interroger un objet pour demander les interfaces qu’il prend en charge, puis utiliser ces interfaces pour accéder aux fonctionnalités.In COM, you can query an object to ask what interfaces it supports and then use those interfaces to access functionality. Dans Automation de l'interface utilisateurUI 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.In Automation de l'interface utilisateurUI Automation, UI Automation clients can ask a control which control patterns it supports and then interact with the control through the properties, methods, events, and structures exposed by the supported control patterns. Par exemple, pour une zone d’édition multiligne, les fournisseurs UI Automation implémentent IScrollProvider.For example, for a multiline edit box, UI Automation providers implement 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.When a client knows that an AutomationElement supports the ScrollPattern control pattern, it can use the properties, methods, and events exposed by that control pattern to manipulate the control, or access information about the control.

Fournisseurs et clients UI AutomationUI Automation Providers and Clients

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.UI Automation providers implement control patterns to expose the appropriate behavior for a specific piece of functionality supported by the control.

Les clients UI Automation accèdent aux méthodes et aux propriétés des classes de modèle de contrôle Automation de l'interface utilisateurUI Automation et les utilisent pour obtenir des informations sur l’ Interface utilisateurUIou pour manipuler l’ Interface utilisateurUI.UI Automation clients access methods and properties of Automation de l'interface utilisateurUI Automation control pattern classes and use them to get information about the Interface utilisateurUI, or to manipulate the Interface utilisateurUI. Ces classes de modèle de contrôle se trouvent dans l’espace de noms System.Windows.Automation (par exemple, InvokePattern et SelectionPattern).These control pattern classes are found in the System.Windows.Automation namespace (for example, InvokePattern and SelectionPattern).

Les clients AutomationElement utilisent des méthodes ( AutomationElement.GetCurrentPropertyValue telles AutomationElement.GetCachedPropertyValueque ou) ou les accesseurs Common Language Runtime Automation de l'interface utilisateurUI Automation (CLR) pour accéder aux propriétés sur un modèle.Clients use AutomationElement methods (such as AutomationElement.GetCurrentPropertyValue or AutomationElement.GetCachedPropertyValue) or the common language runtime (CLR) accessors to access the Automation de l'interface utilisateurUI Automation properties on a pattern. Chaque classe de modèle de contrôle a un membre de champ ( InvokePattern.Pattern par SelectionPattern.Patternexemple, ou) qui identifie ce modèle de contrôle et peut être passé GetCachedPattern en GetCurrentPattern tant que paramètre à ou pour AutomationElementrécupérer ce modèle pour un.Each control pattern class has a field member (for example, InvokePattern.Pattern or SelectionPattern.Pattern) that identifies that control pattern and can be passed as a parameter to GetCachedPattern or GetCurrentPattern to retrieve that pattern for an AutomationElement.

Modèles de contrôle dynamiqueDynamic Control Patterns

Certains contrôles ne prennent pas toujours en charge le même ensemble de modèles de contrôle.Some controls do not always support the same set of control patterns. Les modèles de contrôle sont considérés comme pris en charge lorsqu’ils sont disponibles pour un client UI Automation.Control patterns are considered supported when they are available to a UI Automation client. 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.For example, a multiline edit box enables vertical scrolling only when it contains more lines of text than can be displayed in its viewable area. Le défilement est désactivé lorsque tout le texte peut s’afficher dans la zone prévue à cet effet.Scrolling is disabled when enough text is removed so that scrolling is no longer required. 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).For this example, the ScrollPattern control pattern is dynamically supported depending on the current state of the control (how much text is in the edit box).

Interfaces et classes du modèle de contrôleControl Pattern Classes and Interfaces

Le tableau suivant décrit les modèles de contrôle Automation de l'interface utilisateurUI Automation .The following table describes the Automation de l'interface utilisateurUI Automation control patterns. 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.The table also lists the classes used by UI Automation clients to access the control patterns, as well as the interfaces used by UI Automation providers to implement them.

Classe du modèle de contrôleControl Pattern Class Interface du fournisseurProvider Interface DescriptionDescription
DockPattern IDockProvider Utilisées pour les contrôles qui peuvent être ancrés dans un conteneur d’ancrage.Used for controls that can be docked in a docking container. Par exemple, les barres d’outils ou les palettes d’outils.For example, toolbars or tool palettes.
ExpandCollapsePattern IExpandCollapseProvider Utilisées pour les contrôles qui peuvent être développés ou réduits.Used for controls that can be expanded or collapsed. Par exemple, les éléments de menu dans une application, comme le menu Fichier .For example, menu items in an application such as the File menu.
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.Used for controls that support grid functionality such as sizing and moving to a specified cell. Par exemple, le mode Grandes icônes dans l’Explorateur Windows ou les tableaux simples sans en-têtes dans Microsoft WordMicrosoft Word.For example, the large icon view in Windows Explorer or simple tables without headers in Microsoft WordMicrosoft Word.
GridItemPattern IGridItemProvider Utilisées pour les contrôles dont les grilles contiennent des cellules.Used for controls that have cells within grids. Les cellules individuelles doivent prendre en charge le modèle GridItem.The individual cells should support the GridItem pattern. Par exemple, chaque cellule de l’affichage Détails de l’ Explorateur Microsoft WindowsMicrosoft Windows Explorer .For example, each cell in Explorateur Microsoft WindowsMicrosoft Windows Explorer detail view.
InvokePattern IInvokeProvider Utilisées pour les contrôles qui peuvent être appelés, tel qu’un bouton.Used for controls that can be invoked, such as a button.
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.Used for controls that can switch between multiple representations of the same set of information, data, or children. Par exemple, un contrôle list view où les données sont disponibles en affichage Miniatures, Mosaïques, Icônes, Liste ou Détails.For example, a list view control where data is available in thumbnail, tile, icon, list, or detail views.
RangeValuePattern IRangeValueProvider Utilisées pour les contrôles disposant d’une plage de valeurs qui peut s’appliquer au contrôle.Used for controls that have a range of values that can be applied to the control. 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.For example, a spinner control containing years might have a range of 1900 to 2010, while another spinner control presenting months would have a range of 1 to 12.
ScrollPattern IScrollProvider Utilisées pour les contrôles qui peuvent défiler.Used for controls that can scroll. 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.For example, a control that has scroll bars that are active when there is more information than can be displayed in the viewable area of the control.
ScrollItemPattern IScrollItemProvider Utilisées pour les contrôles qui disposent d’éléments individuels dans une liste déroulante.Used for controls that have individual items in a list that scrolls. 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.For example, a list control that has individual items in the scroll list, such as a combo box control.
SelectionPattern ISelectionProvider Utilisées pour les contrôles conteneur de sélection.Used for selection container controls. Par exemple, les zones de liste et zones de liste modifiable.For example, list boxes and combo boxes.
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.Used for individual items in selection container controls, such as list boxes and combo boxes.
TablePattern ITableProvider Utilisées pour les contrôles qui disposent d’une grille ainsi que d’informations d’en-tête.Used for controls that have a grid as well as header information. Par exemple, les feuilles de calcul Microsoft ExcelMicrosoft Excel .For example, Microsoft ExcelMicrosoft Excel worksheets.
TableItemPattern ITableItemProvider Utilisées pour les éléments d’une table.Used for items in a table.
TextPattern ITextProvider Utilisées pour les contrôles d’édition et les documents qui exposent des informations textuelles.Used for edit controls and documents that expose textual information.
TogglePattern IToggleProvider Utilisées pour les contrôles dont l’état peut être activé et désactivé.Used for controls where the state can be toggled. Par exemple, les cases à cocher et les éléments de menu pouvant être activés.For example, check boxes and checkable menu items.
TransformPattern ITransformProvider Utilisées pour les contrôles qui peuvent être redimensionnés, déplacés et pivotés.Used for controls that can be resized, moved, and rotated. 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.Typical uses for the Transform control pattern are in designers, forms, graphical editors, and drawing applications.
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.Allows clients to get or set a value on controls that do not support a range of values. Par exemple, un sélecteur de date et heure.For example, a date time picker.
WindowPattern IWindowProvider Expose des informations spécifiques aux fenêtres, un concept fondamental du système d’exploitation Microsoft WindowsMicrosoft Windows .Exposes information specific to windows, a fundamental concept to the Microsoft WindowsMicrosoft Windows operating system. Les fenêtres d’application de niveau supérieur (Microsoft WordMicrosoft Word, Explorateur Microsoft WindowsMicrosoft Windows Explorer, etc.), les fenêtres enfants et les boîtes de dialogue de l’interface multidocument (MDI) sont des exemples de contrôles qui sont des fenêtres.Examples of controls that are windows are top-level application windows (Microsoft WordMicrosoft Word, Explorateur Microsoft WindowsMicrosoft Windows Explorer, and so on), multiple-document interface (MDI) child windows, and dialogs.

Voir aussiSee also