Vue d'ensemble des événements 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.

La notification d’événement Microsoft UI Automation est une fonctionnalité clé pour les technologies d’assistance comme les lecteurs d’écran et les loupes. Ces clients UI Automation suivent les événements déclenchés par les fournisseurs UI Automation quand quelque chose se produit dans l’interface utilisateur, et utilisent les informations pour avertir les utilisateurs finaux.

L'efficacité est améliorée en permettant aux applications fournisseurs de déclencher des événements de manière sélective, selon que des clients sont abonnés à ces événements ou non, si aucun client n'écoute d'événement.

Types d’événements

Les événements UI Automation s’inscrivent dans les catégories suivantes.

Événement Description
Modification de propriété Déclenché quand une propriété sur un modèle de contrôle ou sur un élément UI Automation change. Par exemple, si un client doit surveiller le contrôle de case à cocher d'une application, il peut s'inscrire pour écouter un événement de modification de propriété sur la propriété ToggleState . Quand le contrôle de case à cocher est coché ou décoché, le fournisseur déclenche l'événement et le client peut agir de manière appropriée.
Action d'élément Déclenché quand une modification de l’interface utilisateur résulte de l’utilisateur final ou d’une activité de programmation ; par exemple, quand un utilisateur clique sur un bouton ou l’appelle via InvokePattern.
Modification de la structure Déclenchée quand la structure de l’arborescence UI Automation change. La structure évolue quand de nouveaux éléments de l’interface utilisateur deviennent visibles, sont masqués ou sont supprimés sur le Bureau.
Modification globale du bureau Déclenché quand des actions d'intérêt global pour le client se produisent, par exemple quand le focus passe d'un élément à un autre ou qu'une fenêtre se ferme.

Certains événements ne signifient pas nécessairement que l'état de l'interface utilisateur a changé. Par exemple, si l'utilisateur passe à un champ de saisie de texte via une tabulation, puis clique sur un bouton pour mettre à jour le champ, un TextChangedEvent est déclenché même si l'utilisateur n'a pas réellement changé le texte. Pendant le traitement d'un événement, une application cliente peut être amenée à vérifier ce qui a réellement changé avant d'agir.

Les événements suivants peuvent être déclenchés même quand l'état de l'interface utilisateur n'a pas changé.

  • AutomationPropertyChangedEvent (selon la propriété qui a changé)

  • ElementSelectedEvent

  • InvalidatedEvent

  • TextChangedEvent

Identificateurs d'événements UI Automation

Les événements Microsoft UI Automation sont identifiés par des objets AutomationEvent. La propriété Id contient une valeur qui identifie de manière unique le type d'événement.

Les valeurs possibles pour Id figurent dans le tableau ci-dessous, ainsi que le type utilisé pour les arguments d'événement. Notez que les identificateurs utilisés par les clients et les fournisseurs sont des champs de même nom issus de classes différentes.

Identifiant du client Identifiant du fournisseur Type d'arguments d'événement
AutomationElement.AsyncContentLoadedEvent AutomationElementIdentifiers.AsyncContentLoadedEvent AsyncContentLoadedEventArgs
SelectionItemPattern.ElementAddedToSelectionEvent

SelectionItemPattern.ElementRemovedFromSelectionEvent

SelectionItemPattern.ElementSelectedEvent

SelectionPattern.InvalidatedEvent

InvokePattern.InvokedEvent

AutomationElement.LayoutInvalidatedEvent

AutomationElement.MenuClosedEvent

AutomationElement.MenuOpenedEvent

TextPattern.TextChangedEvent

TextPattern.TextSelectionChangedEvent

AutomationElement.ToolTipClosedEvent

AutomationElement.ToolTipOpenedEvent

WindowPattern.WindowOpenedEvent
SelectionItemPatternIdentifiers.ElementAddedToSelectionEvent

SelectionItemPatternIdentifiers.ElementRemovedFromSelectionEvent

SelectionItemPatternIdentifiers.ElementSelectedEvent

SelectionPatternIdentifiers.InvalidatedEvent

InvokePatternIdentifiers.InvokedEvent

AutomationElementIdentifiers.LayoutInvalidatedEvent

AutomationElementIdentifiers.MenuClosedEvent

AutomationElementIdentifiers.MenuOpenedEvent

TextPatternIdentifiers.TextChangedEvent

TextPatternIdentifiers.TextSelectionChangedEvent

AutomationElementIdentifiers.ToolTipClosedEvent

AutomationElementIdentifiers.ToolTipOpenedEvent

WindowPatternIdentifiers.WindowOpenedEvent
AutomationEventArgs
AutomationElement.AutomationFocusChangedEvent AutomationElementIdentifiers.AutomationFocusChangedEvent AutomationFocusChangedEventArgs
AutomationElement.AutomationPropertyChangedEvent AutomationElementIdentifiers.AutomationPropertyChangedEvent AutomationPropertyChangedEventArgs
AutomationElement.StructureChangedEvent AutomationElementIdentifiers.StructureChangedEvent StructureChangedEventArgs
WindowPattern.WindowClosedEvent WindowPatternIdentifiers.WindowClosedEvent WindowClosedEventArgs

Arguments d'événement UI Automation

Les classes suivantes encapsulent des arguments d'événement.

Classe Description
AsyncContentLoadedEventArgs Contient des informations concernant le chargement asynchrone de contenu, notamment le pourcentage de chargement effectué.
AutomationEventArgs Contient des informations sur un événement simple qui ne nécessite pas de données supplémentaires.
AutomationFocusChangedEventArgs Contient des informations sur une modification du focus d'entrée d'un élément à un autre. Les événements de ce type sont déclenchés par le système UI Automation, pas par les fournisseurs.
AutomationPropertyChangedEventArgs Contient des informations sur la modification de la valeur d'une propriété d'un élément ou d'un modèle de contrôle.
StructureChangedEventArgs Contient des informations sur une modification dans l’arborescence UI Automation.
WindowClosedEventArgs Contient des informations sur une fermeture de fenêtre.

Toutes les classes d'argument d'événement contiennent un membre EventId . Cet identificateur est encapsulé dans un AutomationEvent.

Les objets AutomationEvent utilisés pour identifier des événements sont obtenus par les fournisseurs de champs dans AutomationElementIdentifiers et des classes d'identificateur de modèle de contrôle telles que DockPatternIdentifiers. Les champs équivalents sont obtenus par les applications clientes à partir des champs d' AutomationElement et des classes de modèle de contrôle telles que DockPattern.

Pour obtenir la liste des identificateurs d’événement, consultez UI Automation Events for Clients.

Voir aussi