Partager via


Prise en charge d'UI Automation pour le type de contrôle MenuItem

Remarque

Cette documentation est destinée 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 informations les plus récentes sur UI Automation, consultez API Windows Automation : UI Automation.

Cette rubrique fournit des informations sur la prise en charge de Microsoft UI Automation pour le type de contrôle MenuItem. Il décrit la structure de l’arborescence Microsoft UI Automation du contrôle et fournit les propriétés et les modèles de contrôle requis pour le type de contrôle MenuItem.

Un contrôle de menu permet l’organisation hiérarchique des éléments associés aux commandes et aux gestionnaires d’événements. Dans une application Microsoft Windows classique, une barre de menus contient plusieurs éléments de menu (tels que Fichier, Édition et Fenêtre), et chaque élément de menu affiche un menu. Un menu contient une collection d’éléments de menu (tels que Nouvelle, Ouvriret Fermer), qui peuvent être développés pour afficher des éléments de menu supplémentaires ou effectuer une action spécifique en cliquant sur. Un élément de menu peut être hébergé dans un menu, une barre de menus ou une barre d’outils.

Les sections suivantes définissent la structure d’arborescence, les propriétés, les modèles de contrôle et les événements UI Automation requis pour le type de contrôle MenuItem. Les exigences UI Automation s’appliquent à tous les contrôles de liste, que Windows Presentation Foundation (WPF), Win32 ou Windows Forms.

Arborescence UI Automation obligatoire

Le tableau suivant illustre l’affichage de contrôle et l’affichage de contenu de l’arborescence UI Automation qui se rapporte aux contrôles d’élément de menu et décrit ce qui peut être contenu dans chaque vue. Pour plus d’informations sur l’arborescence UI Automation, consultez Vue d’ensemble de l’arborescence UI Automation.

Affichage de contrôle Affichage de contenu
MenuItem « Help »

  • Menu (sous-menu de l’élément de menu Aide)

    • MenuItem « Rubriques d’aide »
    • MenuItem " À propos du Bloc-notes »
MenuItem « Help »

- MenuItem « Rubriques d’aide »
- MenuItem "À propos du Bloc-notes"

L’affichage de contrôle du contrôle d’élément de menu a la structure d’arborescence UI Automation indiquée ci-dessus. Notez que l’élément de menu Aide est inclus pour mieux illustrer la structure d’un menu classique dans une hiérarchie de sous-menu.

Pour l’affichage de contenu, le menu est absent de l’arborescence UI Automation, car il ne transmet pas d’informations significatives à l’utilisateur final.

Propriétés UI Automation obligatoires

Le tableau suivant répertorie les propriétés UI Automation dont la valeur ou la définition est particulièrement pertinente pour les contrôles d’élément de menu. Pour plus d’informations sur les propriétés UI Automation, consultez Propriétés UI Automation pour les clients.

Propriété Valeur Descriptif
AutomationIdProperty Consultez les remarques. La valeur de cette propriété doit être unique dans tous les contrôles d’une application.
BoundingRectangleProperty Consultez les remarques. Rectangle externe qui contient l’ensemble du contrôle.
ClickablePointProperty Consultez les remarques. Prise en charge s’il existe un rectangle englobant. Si les points du rectangle englobant ne sont pas tous interactifs et que vous effectuez un test de positionnement spécialisé, vous devez remplacer et fournir un point interactif.
IsKeyboardFocusableProperty Consultez les remarques. Si le contrôle peut recevoir le focus clavier, il doit prendre en charge cette propriété.
NameProperty Consultez les remarques. Le contrôle d’élément de menu est inclus dans la vue de contenu de l’arborescence UI Automation et est étiqueté automatiquement avec un nom.
LabeledByProperty Null Aucune étiquette.
ControlTypeProperty Élément de menu Cette valeur est identique pour toutes les infrastructures d’interface utilisateur.
LocalizedControlTypeProperty « élément de menu » Chaîne localisée correspondant au type de contrôle MenuItem.
IsContentElementProperty Vrai Le contrôle d’élément de menu n’est jamais inclus dans la vue de contenu de l’arborescence UI Automation.
IsControlElementProperty Vrai Le contrôle d’élément de menu doit toujours être inclus dans la vue de contrôle de l’arborescence UI Automation.

Modèles de contrôle UI Automation obligatoires

Le tableau suivant répertorie les modèles de contrôle UI Automation requis pour être pris en charge par les contrôles d’élément de menu. Pour plus d’informations sur les modèles de contrôle, consultez Vue d’ensemble des modèles de contrôle UI Automation.

Propriété du modèle de contrôle Soutien Remarques
IExpandCollapseProvider Dépend Si le contrôle peut être développé ou réduit, implémentez IExpandCollapseProvider.
IInvokeProvider Dépend Si le contrôle exécute une seule action ou commande, implémentez IInvokeProvider.
IToggleProvider Dépend Si le contrôle représente une option qui peut être activée ou désactivée, implémentez IToggleProvider.
ISelectionItemProvider Dépend Si le contrôle est utilisé pour effectuer une sélection dans une liste d’options parmi les éléments de menu, implémentez ISelectionItemProvider.

Événements d'automatisation de l'interface utilisateur pour l'élément de menu

Le tableau suivant répertorie les événements Microsoft UI Automation associés au contrôle d’élément de menu.

Événement Soutien Explication
InvokedEvent Dépend Doit être déclenché si le contrôle prend en charge le modèle de contrôle Invoke.
Événement de modification de propriétéToggleStateProperty Dépend Doit être déclenché si le contrôle prend en charge le modèle de contrôle Toggle.
Événement de modification de propriétéExpandCollapseStateProperty Dépend Doit être déclenché si le contrôle prend en charge le modèle de contrôle Expand Collapse.
ElementSelectedEvent Dépend Aucun.

Événements UI Automation obligatoires

Le tableau suivant répertorie les événements UI Automation requis pour être pris en charge par tous les contrôles d’élément de menu. Pour plus d’informations sur les événements, consultez UI Automation Events Overview.

Événement UI Automation Prise en charge/valeur Remarques
InvokedEvent Dépend Aucun
ElementAddedToSelectionEvent Dépend Aucun
ElementRemovedFromSelectionEvent Dépend Aucun
ElementSelectedEvent Dépend Aucun
Événement de modification de propriétéBoundingRectangleProperty Obligatoire Aucun
Événement de modification de propriétéIsOffscreenProperty Obligatoire Aucun
Événement de modification de propriétéIsEnabledProperty Obligatoire Aucun
Événement de modification de propriétéExpandCollapseStateProperty Dépend Aucun
Événement de modification de propriétéToggleStateProperty Dépend Aucun
AutomationFocusChangedEvent Obligatoire Aucun
StructureChangedEvent Obligatoire Aucun

Problèmes hérités

Le modèle Toggle est pris en charge uniquement quand l’élément de menu Win32 est activé et peut être déterminé par programmation comme étant nécessaire pour prendre en charge le modèle Toggle. Étant donné que l’élément de menu Win32 n’expose pas s’il a la possibilité d’être activé, Invoke Pattern est pris en charge lorsque l’élément de menu n’est pas activé. Une exception sera faite pour toujours supporter Invoke Pattern, même pour les éléments de menu qui ne doivent supporter que Toggle Pattern. L’objectif est de ne pas dérouter les clients parce qu’un élément qui prenait en charge le modèle Invoke (quand l’élément de menu était désactivé) ne prend plus en charge le modèle une fois qu’il est activé.

Voir aussi