菜单控件类型

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

使用菜单控件,可以对与命令和事件处理程序相关联的元素以分层方式进行组织。 在典型的 Microsoft Windows 应用程序中,菜单栏包含多个菜单按钮(如“文件”、“编辑”和“窗口”),每个菜单按钮都可显示一个菜单。 菜单包含一系列菜单项(如“新建” 、“打开” 和“关闭” ),可以通过展开这些菜单项来显示额外的菜单项,或者通过单击它们来执行特定的操作。

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

本主题包含以下各节:

典型树结构

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

控件视图 内容视图
  • 菜单
    • MenuItem(1 个或多个)
    • 其他控件(0 个或多个)
  • 菜单
    • MenuItem(1 个或多个)
    • 其他控件(0 个或多个)

 

菜单控件始终出现在 UI 自动化树的控件视图和内容视图中。 菜单控件应显示在其信息所引用的控件下。 UI 自动化客户端可以侦听UIA_MenuOpenedEventId,以确保他们一致地获取菜单控件传达的信息。 上下文菜单控件是一个特例。 它们可能显示为桌面或顶级应用程序窗口的子级。

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

相关属性

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

UI 自动化属性 说明
UIA_ControlTypePropertyId 菜单
UIA_IsContentElementPropertyId TRUE 菜单控件始终包含在UI 自动化树的内容视图中。
UIA_IsControlElementPropertyId TRUE Menu 控件始终包括在 UI 自动化树的控件视图中。
UIA_LabeledByPropertyId Null 不使用典型的菜单控件来准备任何标签。
UIA_NamePropertyId 请参阅注释。 菜单控件不需要设置 Name 属性,也可以具有与关联控件相同的名称,例如打开子菜单的菜单项。

 

所需的控件模式

Menu 控件类型不需要任何控件模式。

必需事件

菜单控件在屏幕上显示时,必须引发 UIA_MenuOpenedEventId 事件。 UIA_MenuOpenedEventId 事件将包含控件的文本。 当菜单从屏幕上消失时,必须引发 UIA_MenuClosedEventId 事件。

下表列出了菜单控件需要支持UI 自动化事件。 有关事件的详细信息,请参阅 F:System.Windows.Automation.AutomationElementIdentifiers.IsEnabledProperty

UI 自动化事件 说明
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId 属性更改事件。
UIA_IsEnabledPropertyId 属性更改事件。 如果控件支持 IsEnabled 属性,它必须支持此事件。
UIA_IsOffscreenPropertyId 属性更改事件。 如果控件支持 IsOffscreen 属性,则必须支持此事件。
UIA_MenuClosedEventId
UIA_MenuOpenedEventId
UIA_StructureChangedEventId

 

概念性

UI 自动化控件类型概述

UI 自动化概述