Vue d'ensemble des propriétés 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.

Les fournisseurs UI Automation exposent des propriétés sur les éléments Microsoft UI Automation. Ces propriétés permettent aux applications clientes UI Automation de découvrir des informations sur des parties de l’interface utilisateur, en particulier les contrôles (données statiques et dynamiques comprises).

Cette section fournit une vue d’ensemble générale des propriétés Microsoft UI Automation. Des informations plus spécifiques sont disponibles dans les rubriques suivantes :

Identificateurs de propriété

Chaque propriété est identifiée par un numéro et un nom. Les noms de propriétés sont utilisés uniquement pour le débogage et le diagnostic. Les fournisseurs utilisent les ID numériques pour identifier les demandes de propriété entrantes. Les applications clientes, toutefois, utilisent uniquement AutomationProperty, qui encapsule le numéro et le nom, pour identifier les propriétés qu’elles souhaitent récupérer.

Les objetsAutomationProperty qui représentent des propriétés particulières sont disponibles sous forme de champs dans différentes classes. Pour des raisons de sécurité, les fournisseurs UI Automation obtiennent ces objets à partir d’un ensemble distinct de classes contenues dans Uiautomationtypes.dll.

Le tableau suivant catégorise les propriétés selon les classes qui contiennent les AutomationPropertyID.

Types de propriétés Les clients obtiennent les ID par le biais de Les fournisseurs obtiennent les ID par le biais de
Propriétés communes à tous les éléments (consultez les tableaux suivants) AutomationElement AutomationElementIdentifiers
Position d’une fenêtre d’ancrage DockPattern DockPatternIdentifiers
État d’un élément que vous pouvez développer et réduire ExpandCollapsePattern ExpandCollapsePatternIdentifiers
Propriétés d’un élément dans une grille GridItemPattern GridItemPatternIdentifiers
Propriétés d’une grille GridPattern GridPatternIdentifiers
Affichage actuel pris en charge d’un élément disposant de plusieurs affichages MultipleViewPattern MultipleViewPatternIdentifiers
Propriétés d’un élément se déplaçant dans une plage de valeurs, comme un curseur RangeValuePattern RangeValuePatternIdentifiers
Propriétés d’une fenêtre de défilement ScrollPattern ScrollPatternIdentifiers
État et conteneur d’un élément pouvant être sélectionné, comme dans une liste SelectionItemPattern SelectionItemPatternIdentifiers
Propriétés d’un contrôle contenant des éléments de sélection SelectionPattern SelectionPatternIdentifiers
En-têtes de ligne et de colonne d’un élément dans une table TableItemPattern TableItemPatternIdentifiers
En-têtes de ligne et de colonne et orientation d’une table TablePattern TablePatternIdentifiers
État d’un contrôle de basculement TogglePattern TogglePatternIdentifiers
Fonctionnalités d’un élément pouvant être déplacé, pivoté ou redimensionné TransformPattern TransformPatternIdentifiers
Valeur et fonctionnalités de lecture/d’écriture d’un élément ayant une valeur ValuePattern ValuePatternIdentifiers
Fonctionnalités et état d’une fenêtre WindowPattern WindowPatternIdentifiers

Propriétés par catégorie

Les tableaux suivants catégorisent les propriétés dont les ID se trouvent dans AutomationElement et AutomationElementIdentifiers. Ces propriétés sont communes à tous les contrôles. Toutefois, certaines d’entre elles sont susceptibles d’être statiques pendant la durée de vie de l’application fournisseur. Les propriétés les plus dynamiques sont associées à des modèles de contrôle.

La colonne Accès à la propriété répertorie tous les autres accesseurs pour chaque propriété, en plus de GetCurrentPropertyValue et GetCachedPropertyValue. Pour plus d’informations sur l’obtention des propriétés d’une application cliente, consultez UI Automation Properties for Clients.

Notes

Pour obtenir des informations spécifiques sur chaque propriété, suivez le lien de la colonne Accès à la propriété .

Caractéristiques d’affichage

Identificateur de propriété Accès à la propriété
BoundingRectangleProperty BoundingRectangle
CultureProperty Non applicable
HelpTextProperty HelpText
IsOffscreenProperty IsOffscreen
OrientationProperty Orientation

Type d'élément

Identificateur de propriété Accès à la propriété
ControlTypeProperty ControlType
IsContentElementProperty IsContentElement
IsControlElementProperty IsControlElement
ItemTypeProperty ItemType
LocalizedControlTypeProperty LocalizedControlType

Identification

Identificateur de propriété Accès à la propriété
AutomationIdProperty AutomationId
ClassNameProperty ClassName
FrameworkIdProperty FrameworkId
LabeledByProperty LabeledBy
NameProperty Name
ProcessIdProperty ProcessId
RuntimeIdProperty GetRuntimeId
NativeWindowHandleProperty NativeWindowHandle

Interaction

Identificateur de propriété Accès à la propriété
AcceleratorKeyProperty AcceleratorKey
AccessKeyProperty AccessKey
ClickablePointProperty GetClickablePoint
HasKeyboardFocusProperty HasKeyboardFocus
IsEnabledProperty IsEnabled
IsKeyboardFocusableProperty IsKeyboardFocusable

Prise en charge des modèles

Identificateur de propriété Accès à la propriété
IsDockPatternAvailableProperty GetSupportedPatterns
IsExpandCollapsePatternAvailableProperty GetSupportedPatterns
IsGridItemPatternAvailableProperty GetSupportedPatterns
IsGridPatternAvailableProperty GetSupportedPatterns
IsInvokePatternAvailableProperty GetSupportedPatterns
IsMultipleViewPatternAvailableProperty GetSupportedPatterns
IsRangeValuePatternAvailableProperty GetSupportedPatterns
IsScrollItemPatternAvailableProperty GetSupportedPatterns
IsScrollPatternAvailableProperty GetSupportedPatterns
IsSelectionItemPatternAvailableProperty GetSupportedPatterns
IsSelectionPatternAvailableProperty GetSupportedPatterns
IsTableItemPatternAvailableProperty GetSupportedPatterns
IsTablePatternAvailableProperty GetSupportedPatterns
IsTextPatternAvailableProperty GetSupportedPatterns
IsTogglePatternAvailableProperty GetSupportedPatterns
IsTransformPatternAvailableProperty GetSupportedPatterns
IsValuePatternAvailableProperty GetSupportedPatterns
IsWindowPatternAvailableProperty GetSupportedPatterns

Divers

Identificateur de propriété Accès à la propriété
IsRequiredForFormProperty IsRequiredForForm
IsPasswordProperty IsPassword
ItemStatusProperty ItemStatus

Localisation

Les fournisseurs UI Automation doivent présenter les propriétés suivantes dans la langue du système d’exploitation :

Propriétés et événements

Le concept des événements de modification de propriété est étroitement lié aux propriétés d’UI Automation. Pour les propriétés dynamiques, l’application cliente a besoin d’un moyen de savoir si une valeur de propriété a changé, afin de pouvoir mettre à jour son cache d’informations ou réagir aux nouvelles informations d’une autre manière.

Les fournisseurs déclenchent des événements quand l’interface utilisateur est modifiée. Par exemple, si une case est cochée ou décochée, un événement de modification de propriété est déclenché par l’implémentation du modèle Toggle par le fournisseur. Les fournisseurs peuvent déclencher des événements de manière sélective, selon que les clients écoutent tous les événements ou seulement des événements spécifiques.

Toutes les modifications de propriété ne déclenchent pas nécessairement des événements. Cela dépend entièrement de l’implémentation du fournisseur UI Automation pour l’élément. Par exemple, les fournisseurs de proxys standard pour les zones de liste ne déclenchent pas d’événement quand la propriété SelectionProperty est modifiée. Dans ce cas, l’application doit plutôt écouter un ElementSelectedEvent.

Les clients écoutent des événements en s’y abonnant. L’abonnement à des événements revient à créer des méthodes déléguées capables de gérer les événements et à passer ces méthodes à UI Automation avec les événements spécifiques qu’elles devront traiter. Pour les événements de modification de propriété en particulier, les clients doivent implémenter AutomationPropertyChangedEventHandler.

Voir aussi