Prise en charge d'UI Automation pour le type de contrôle MenuItem
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.
Cette rubrique fournit des informations sur la prise en charge de Microsoft UI Automation pour le type de contrôle MenuItem. Elle décrit 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 menu permet une organisation hiérarchique des éléments associés à des commandes et des gestionnaires d’événements. Dans une application Microsoft Windows classique, une barre de menus contient plusieurs éléments de menu (tels que Fichier, Edition et Fenêtre) et chaque élément de menu affiche un menu. Un menu contient un groupe d’éléments de menu (tels que Nouveau, Ouvriret Fermer), qui peuvent être développés pour afficher des éléments de menu supplémentaires ou pour exécuter une action spécifique quand vous cliquez dessus. 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 l’arborescence, les propriétés, les modèles de contrôle et les événements de l’IU Automation nécessaires pour le type de contrôle MenuItem. Les exigences UI Automation s’appliquent à tous les contrôles de liste, que ce soit Windows Presentation Foundation (WPF), Win32 ou Windows Forms.
Arborescence UI Automation obligatoire
Le tableau suivant représente l’affichage de contrôle et l’affichage du contenu de l’arborescence UI Automation relative aux contrôles d’élément de menu. En outre, il décrit ce que peut contenir chaque affichage. Pour plus d’informations sur l’arborescence de l’IU Automation, consultez Vue d’ensemble de l’arborescence de l’IU Automation.
Affichage de contrôle | Affichage de contenu |
---|---|
MenuItem "Aide"
|
MenuItem "Aide" - MenuItem "Rubriques d’aide" - MenuItem "À propos du Bloc-notes" |
L’arborescence UI Automation de la vue de contrôle du contrôle d’élément de menu est représentée ci-dessus. Notez que l’élément de menu Aide est inclus pour mieux illustrer la structure de la hiérarchie standard des menus et sous-menus.
Pour la vue de contenu, Menu est absent de l’arborescence UI Automation, car il n’apporte 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 | Description |
---|---|---|
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. | Pris 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 | MenuItem | 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 | True | Le contrôle d’élément de menu n’est jamais inclus dans la vue de contenu de l’arborescence UI Automation. |
IsControlElementProperty | True | 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 qui doivent être pris en charge par les contrôles de menu. Pour plus d’informations sur les modèles de contrôle, consultez UI Automation Control Patterns Overview.
Propriété du modèle de contrôle | Support | Notes |
---|---|---|
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 permet d’effectuer une sélection dans une liste d’options parmi des éléments de menu, implémentez ISelectionItemProvider. |
Événements UI Automation pour le contrôle MenuItem
Le tableau suivant répertorie les événements Microsoft UI Automation associés au contrôle d’élément de menu.
Événement | Support | 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 | Aucune. |
Événements UI Automation obligatoires
Le tableau suivant répertorie les événements UI Automation qui doivent ê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 | Notes |
---|---|---|
InvokedEvent | Dépend | Aucun |
ElementAddedToSelectionEvent | Dépend | Aucun |
ElementRemovedFromSelectionEvent | Dépend | Aucun |
ElementSelectedEvent | Dépend | None |
Événement de modification de propriétéBoundingRectangleProperty | Obligatoire | None |
Événement de modification de propriétéIsOffscreenProperty | Obligatoire | None |
Événement de modification de propriétéIsEnabledProperty | Obligatoire | None |
Événement de modification de propriétéExpandCollapseStateProperty | Dépend | None |
Événement de modification de propriétéToggleStateProperty | Dépend | None |
AutomationFocusChangedEvent | Obligatoire | None |
StructureChangedEvent | Obligatoire | Aucun |
Problèmes d’héritage
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. Comme l’élément de menu Win32 n’indique pas s’il peut être activé, le modèle Invoke est pris en charge quand l’élément de menu n’est pas activé. Une exception est faite pour toujours prendre en charge le modèle Invoke, même pour les éléments de menu qui ne doivent prendre en charge que le modèle Toggle. 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é.