MenuBar 控件类型

本主题提供有关 MenuBar 控件类型的Microsoft UI 自动化支持的信息。

菜单栏控件是实现 MenuBar 控件类型的控件示例。 菜单栏为用户提供激活应用程序中包含的命令和选项的方法。

以下各节定义 MenuBar 控件类型所需的 UI 自动化树结构、属性、控件模式和事件。 UI 自动化要求适用于 UI 框架/平台集成 UI 自动化对控件类型和控件模式的支持的所有菜单栏控件。

本主题包含以下部分。

典型树结构

下表描述了与菜单栏控件相关的 UI 自动化树的典型控件和内容视图,并描述了每个视图中可包含的内容。 有关 UI 自动化树的详细信息,请参阅 UI 自动化树概述

控件视图 内容视图
  • MenuBar
    • MenuItem (1 个或多个)
    • 其他控件 (0 或多)
  • 不適用
    • MenuItem (1 个或多个)
    • 其他控件 (0 或多)

 

菜单栏控件始终出现在控件视图中,但不出现在内容视图中,因为它通常不会向最终用户传达有意义的信息(除非应用程序包含多个菜单栏)。

UI 自动化客户端可以侦听 UIA_MenuModeStartEventId 事件,以确保在 UI 进入菜单模式时一致地收到通知。 当应用程序处于菜单模式时,可以为菜单导航捕获所有键盘输入(例如,键入“s”可能会调用 保存 菜单,而不是在应用程序客户端应用程序上键入字符)。 UIA_MenuModeStartEventId 事件必须位于第一个 UIA_MenuOpenedEventId 事件之前,以确保逻辑一致性。 UIA_MenuModeEndEventId 事件遵循最后一个 UIA_MenuClosedEventId 事件。 单击菜单项也可以立即触发 UIA_MenuModeStartEventId 事件,后跟 UIA_MenuOpenedEventId 事件。

菜单栏控件可以包含其结构中的其他控件,例如编辑控件和组合框。 这些附加控件对应于控件和内容视图中上面列出的“其他控件”。

相关属性

下表列出了其值或定义与 MenuBar 控件类型特别相关的 UI 自动化属性。 有关 UI 自动化属性的详细信息,请参阅 从 UI 自动化元素检索属性

UI 自动化属性 价值 笔记
UIA_AcceleratorKeyPropertyId 菜单栏通常没有快捷键。
UIA_AccessKeyPropertyId “ALT” 按 Alt 键通常应将焦点置于应用程序中的菜单栏上。
UIA_BoundingRectanglePropertyId 请参阅备注。 此属性公开的值必须包含它中包含的所有控件。
UIA_ControlTypePropertyId MenuBar
UIA_IsContentElementPropertyId 菜单栏控件不包括在 UI 自动化树的内容视图中。
UIA_IsControlElementPropertyId 菜单栏控件始终包含在 UI 自动化树的控件视图中。
UIA_IsKeyboardFocusablePropertyId 菜单栏控件是可键盘聚焦的,因为它们包含的控件可以采用键盘焦点。
UIA_IsOffscreenPropertyId 请参阅备注。 此属性的值取决于该控件是否在屏幕上可查看。
UIA_LabeledByPropertyId 菜单栏控件通常没有标签。
UIA_LocalizedControlTypePropertyId 请参阅备注。 MenuBar 控件类型对应的本地化字符串。 默认值为 en-US 或英语(美国)的“菜单栏”。
UIA_NamePropertyId 请参阅备注。 除非应用程序有多个菜单栏,否则菜单栏控件不需要名称。 如果应用程序中有多个菜单栏,请使用此属性公开区分名称,例如“格式设置”或“大纲显示”。
UIA_OrientationPropertyId 取决于 此属性公开菜单栏控件是水平还是垂直。

 

所需的控件模式

下表列出了菜单栏控件支持所需的 UI 自动化控件模式。 有关控件模式的详细信息,请参阅 UI 自动化控件模式概述

控件模式 支持 笔记
IExpandCollapseProvider 取决于 如果控件可以展开或折叠,则必须实现 ExpandCollapse 控件模式。
IDockProvider 取决于 如果控件可以停靠到屏幕的不同部分,则必须实现 扩展坞 控件模式。
ITransformProvider 取决于 如果控件可以调整、旋转或移动大小,则必须实现 转换 控件模式。

 

必需事件

下表列出了菜单栏控件需要支持的 UI 自动化事件。 有关事件的详细信息,请参阅 UI 自动化事件概述

UI 自动化事件 笔记
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId 属性更改事件。
UIA_ExpandCollapseExpandCollapseStatePropertyId 属性更改事件。 如果控件支持 ExpandCollapse 控件模式,则必须支持此事件。
UIA_IsEnabledPropertyId 属性更改事件。 如果控件支持 IsEnabled 属性,则必须支持此事件。
UIA_IsOffscreenPropertyId 属性更改事件。 如果控件支持 IsOffscreen 属性,则必须支持此事件。
UIA_StructureChangedEventId

 

概念

UI 自动化控件类型概述

UI 自动化概述