MenuItem, type de contrôle

Cette rubrique fournit des informations sur la prise en charge de Microsoft UI Automation 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 Windows classique, une barre de menus contient plusieurs éléments de menu (tels que Fichier, Modifier 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.

Les sections suivantes définissent les UI Automation l’arborescence, les propriétés, les modèles de contrôle et les événements requis pour le type de contrôle MenuItem. Les exigences UI Automation s’appliquent à tous les contrôles d’élément de menu où l’infrastructure/plateforme d’interface utilisateur intègre UI Automation prise en charge des types de contrôles et des modèles de contrôle.

Cette rubrique contient les sections suivantes.

Arborescence standard

Le tableau suivant illustre une vue de contrôle et de contenu standard 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 affichage. 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 "Aide"
    • Menu (sous-menu de l’élément de menu Aide)
      • MenuItem "Rubriques d’aide"
      • MenuItem "À propos du Bloc-notes"
  • 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 dans la barre de menus a été ajouté pour mieux illustrer la structure.

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

Propriétés pertinentes

Le tableau suivant répertorie les propriétés UI Automation dont la valeur ou la définition est particulièrement pertinente pour le type de contrôle MenuItem. Pour plus d’informations sur UI Automation propriétés, consultez Récupération de propriétés à partir d’éléments UI Automation.

Propriété UI Automation Valeur Notes
UIA_AutomationIdPropertyId Consultez les remarques. La valeur de cette propriété doit être unique parmi tous les éléments homologues dans la vue brute de l’arborescence UI Automation. Allouez la propriété AutomationId pour un élément de menu si l’élément est connu pour être cohérent entre différentes instances de l’interface utilisateur. Si l’élément de menu est rempli dynamiquement et non prévisible, laissez la propriété AutomationId vide.
UIA_BoundingRectanglePropertyId Consultez les remarques. Rectangle externe qui contient l’ensemble du contrôle.
UIA_ClickablePointPropertyId Consultez les remarques. Pris en charge s’il existe un rectangle englobant. Si tous les points du rectangle englobant ne sont pas cliquables et que l’élément effectue des tests de positionnement spécialisés, remplacez et fournissez un point cliquable.
UIA_ControlTypePropertyId MenuItem
UIA_IsContentElementPropertyId true Le contrôle d’élément de menu est toujours inclus dans l’affichage du contenu de l’arborescence UI Automation.
UIA_IsControlElementPropertyId true Le contrôle d’élément de menu est toujours inclus dans la vue de contrôle de l’arborescence UI Automation.
UIA_IsKeyboardFocusablePropertyId Consultez les remarques. Si le contrôle peut recevoir le focus clavier, il doit prendre en charge cette propriété.
UIA_LocalizedControlTypePropertyId Consultez les remarques. Chaîne localisée correspondant au type de contrôle MenuItem . La valeur par défaut est « élément de menu » pour en-US ou anglais (États-Unis).
UIA_NamePropertyId Consultez les remarques. Le nom du contrôle d’élément de menu est le texte utilisé pour l’étiqueter.

 

Modèles de contrôle requis

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.

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.
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.
IToggleProvider Dépend Si le contrôle représente une option qui peut être activée ou désactivée, implémentez IToggleProvider.

 

Événements obligatoires

Le tableau suivant répertorie les événements UI Automation que les contrôles d’éléments de menu doivent prendre en charge. Pour plus d’informations sur les événements, consultez UI Automation Events Overview.

Événement UI Automation Notes
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId’événement de modification de propriété.
UIA_ExpandCollapseExpandCollapseStatePropertyId’événement de modification de propriété. Si le contrôle prend en charge le modèle de contrôle ExpandCollapse , il doit prendre en charge cet événement.
UIA_Invoke_InvokedEventId Si le contrôle prend en charge le modèle de contrôle Invoke , il doit prendre en charge cet événement.
UIA_IsEnabledPropertyId’événement de modification de propriété. Si le contrôle prend en charge la propriété IsEnabled , il doit prendre en charge cet événement.
UIA_IsOffscreenPropertyId’événement de modification de propriété. Si le contrôle prend en charge la propriété IsOffscreen , il doit prendre en charge cet événement.
UIA_SelectionItem_ElementAddedToSelectionEventId Si le contrôle prend en charge le modèle de contrôle SelectionItem , il doit prendre en charge cet événement.
UIA_SelectionItem_ElementRemovedFromSelectionEventId Si le contrôle prend en charge le modèle de contrôle SelectionItem , il doit prendre en charge cet événement.
UIA_SelectionItem_ElementSelectedEventId Si le contrôle prend en charge le modèle de contrôle SelectionItem , il doit prendre en charge cet événement.
UIA_StructureChangedEventId
UIA_ToggleToggleStatePropertyId’événement de modification de propriété. Si le contrôle prend en charge le modèle de contrôle Bascule , il doit prendre en charge cet événement.

 

Problèmes d’héritage

Pour les éléments de menu Microsoft Win32, le modèle de contrôle Bascule est pris en charge uniquement lorsqu’un élément de menu est activé et il est possible de déterminer par programmation si la prise en charge du modèle de contrôle Bascule est requise. Étant donné qu’un élément de menu Win32 n’expose pas s’il peut être vérifié, le modèle de contrôle Invoke est pris en charge lorsque l’élément de menu n’est pas activé. Le modèle de contrôle Invoke est toujours pris en charge, même pour les éléments de menu qui sont uniquement nécessaires pour prendre en charge le modèle de contrôle Bascule. Ainsi, les clients ne deviennent pas confus lorsqu’un élément de menu qui prenait en charge le modèle de contrôle Invoke (lorsque l’élément de menu a été décoché) ne prend plus en charge ce modèle lorsqu’il est activé.

Conceptuel

Vue d'ensemble des types de contrôle UI Automation

Vue d'ensemble d'UI Automation