Type de contrôle MenuBar

Cette rubrique fournit des informations sur la prise en charge de Microsoft UI Automation pour le type de contrôle MenuBar.

Les contrôles de barre de menus sont un exemple de contrôles qui implémentent le type de contrôle MenuBar . Les barres de menus permettent aux utilisateurs d’activer les commandes et les options contenues dans une application.

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 MenuBar. Les exigences UI Automation s’appliquent à tous les contrôles de barre de menus 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 classique de l’arborescence UI Automation qui se rapporte aux contrôles de barre de menus 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
  • MenuBar
    • MenuItem (1 ou plus)
    • Autres contrôles (0 ou plusieurs)
  • Non applicable
    • MenuItem (1 ou plus)
    • Autres contrôles (0 ou plusieurs)

 

Un contrôle de barre de menus apparaît toujours dans l’affichage de contrôle, mais pas dans l’affichage de contenu, car il ne transmet généralement pas d’informations significatives à l’utilisateur final (sauf si l’application contient plusieurs barres de menus).

UI Automation clients peuvent écouter l’événement UIA_MenuModeStartEventId pour s’assurer qu’ils sont avertis de manière cohérente lorsque l’interface utilisateur passe en mode menu. Lorsque l’application est en mode menu, toutes les entrées du clavier peuvent être capturées pour la navigation dans le menu (par exemple, la saisie de 's' peut appeler le menu Enregistrer au lieu de taper le caractère dans la zone cliente de l’application). L’événement UIA_MenuModeStartEventId doit précéder le premier événement UIA_MenuOpenedEventId pour garantir la cohérence logique. L’événement UIA_MenuModeEndEventId suit le dernier événement UIA_MenuClosedEventId. Cliquer sur un élément de menu peut également déclencher immédiatement l’événement UIA_MenuModeStartEventId , suivi d’un événement UIA_MenuOpenedEventId .

Un contrôle de barre de menus peut contenir d’autres contrôles, tels que des contrôles d’édition et des zones de liste déroulante, dans sa structure. Ces contrôles supplémentaires correspondent aux « autres contrôles » répertoriés ci-dessus dans les affichages de contrôle et de contenu.

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 MenuBar. 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_AcceleratorKeyPropertyId NULL Les barres de menus n’ont généralement pas de touches d’accélérateur.
UIA_AccessKeyPropertyId « ALT » Le fait d’appuyer sur la touche ALT doit généralement mettre le focus sur la barre de menus de l’application.
UIA_BoundingRectanglePropertyId Consultez les remarques. La valeur exposée par cette propriété doit inclure tous les contrôles qu’elle contient.
UIA_ControlTypePropertyId MenuBar
UIA_IsContentElementPropertyId FALSE Le contrôle de barre de menus n’est pas inclus dans l’affichage de contenu de l’arborescence UI Automation.
UIA_IsControlElementPropertyId TRUE Le contrôle de barre de menus est toujours inclus dans l’affichage du contrôle de l’arborescence UI Automation.
UIA_IsKeyboardFocusablePropertyId TRUE Les contrôles de barre de menus sont actifs via le clavier, car les contrôles qu’ils contiennent peuvent recevoir le focus clavier.
UIA_IsOffscreenPropertyId Consultez les remarques. La valeur de cette propriété varie selon que le contrôle est visible ou non à l’écran.
UIA_LabeledByPropertyId NULL Les contrôles de barre de menus n’ont généralement pas d’étiquette.
UIA_LocalizedControlTypePropertyId Consultez les remarques. Chaîne localisée correspondant au type de contrôle MenuBar . La valeur par défaut est « barre de menus » pour en-US ou english (États-Unis).
UIA_NamePropertyId Consultez les remarques. Le contrôle de barre de menus n’a pas besoin d’un nom, sauf si une application contient plusieurs barres de menus. S’il existe plusieurs barres de menus dans une application, utilisez cette propriété pour exposer des noms distinctifs, tels que « Mise en forme » ou « Plan ».
UIA_OrientationPropertyId Dépend Cette propriété indique si le contrôle de barre de menus est horizontal ou vertical.

 

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 barre de menus. 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, il doit implémenter le modèle de contrôle ExpandCollapse .
IDockProvider Dépend Si le contrôle peut être ancré à différentes parties de l’écran, il doit implémenter le modèle de contrôle Dock .
ITransformProvider Dépend Si le contrôle peut être redimensionné, pivoté ou déplacé, il doit implémenter le modèle de contrôle Transformer .

 

Événements obligatoires

Le tableau suivant répertorie les événements UI Automation que les contrôles de barre de menus 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_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_StructureChangedEventId

 

Conceptuel

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

Vue d'ensemble d'UI Automation