TreeItem 控件类型

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

TreeItem 控件类型表示树容器中的节点。 各个节点可能包含其他节点,称为子节点。 以按展开或折叠的方式显示父节点或包含子节点的节点。

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

本主题包含以下各节:

典型树结构

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

控件视图 内容视图
  • TreeItem
    • CheckBox(0 个或 1 个)
    • Image(0 个或 1 个)
    • Button(0 个或 1 个)
    • TreeItem(0 个或多个)
  • TreeItem
    • TreeItem(0 个或多个)

 

树项控件可以有零个或多个 UI 自动化树的内容视图中的树项子控件。 如果树项控件的功能超出了下面列出的控件模式中公开的功能,则控件应基于 DataItem 控件类型。

折叠的树项在展开并可见 (之前不会显示在控件视图或内容视图中,或者可以滚动到视图) 。

控件视图可以包含控件的其他详细信息,包括关联的图像或按钮。 例如,大纲视图中的项可能包含图像,以及用于展开或折叠该大纲的按钮。 这些详细信息对象不会显示在内容视图中,因为信息已由父树项表示。

从屏幕上滚动的树项同时显示在UI 自动化树的控件和内容视图中,并且应将 IUIAutomationElement::CurrentIsOffscreen (或 CachedIsOffscreen) 属性设置为 TRUE

相关属性

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

UI 自动化属性 说明
UIA_AutomationIdPropertyId 请参阅注释。 此属性的值在UI 自动化树的原始视图中的所有对等元素中必须是唯一的。
UIA_BoundingRectanglePropertyId 请参阅注释。 包含整个控件的最外层矩形。
UIA_ClickablePointPropertyId 请参阅注释。 此属性必须返回导致树项更改选择状态或变为焦点的位置。
UIA_ControlTypePropertyId TreeItem 此值对于所有 UI 框架均相同。
UIA_IsContentElementPropertyId TRUE 树项控件始终包含在UI 自动化树的内容视图中。
UIA_IsControlElementPropertyId TRUE 树项控件始终包含在UI 自动化树的控件视图中。
UIA_IsKeyboardFocusablePropertyId 请参阅注释。 如果该控件可以接收键盘焦点,则它必须支持此属性。
UIA_IsOffscreenPropertyId 请参阅注释。 此属性指示是否从屏幕上滚动树项控件。
UIA_ItemStatusPropertyId 请参阅注释。 如果控件包含动态更新的状态,则必须支持此属性,以便辅助技术可以在元素的状态更改时接收更新。
UIA_ItemTypePropertyId 请参阅注释。 如果树项控件使用可视图标来指示是特定类型的项,则必须支持此属性,并且必须指示项类型。
UIA_LabeledByPropertyId NULL 树项控件自行进行标记。
UIA_LocalizedControlTypePropertyId 请参阅注释。 与 TreeItem 控件类型相对应的本地化字符串。 en-US 或英语 (美国) 的默认值为“树项”。
UIA_NamePropertyId 请参阅注释。 此属性公开为每个树项控件显示的文本。

 

所需的控件模式

下表列出了所有树项控件需要支持的UI 自动化控件模式。 有关控件模式的详细信息,请参阅 UI Automation Control Patterns Overview

控件模式/模式属性 支持/值 注释
IExpandCollapseProvider 必选 所有树项都必须支持 ExpandCollapse 控件模式,因为所有项都可以展开或折叠。
ExpandCollapseState 展开、折叠或叶节点 树项不是展开或折叠的叶节点。
IInvokeProvider 依赖的对象 如果树项可以执行命令,则实现 Invoke 控件模式。
IScrollItemProvider 依赖的对象 如果树容器支持 Scroll 控件模式,则实现 ScrollItem 控件模式。
ISelectionItemProvider 依赖的对象 如果有可能在用户返回到树容器时保持活动选择,则实现 SelectionItem 控件模式。
SelectionContainer 必选 此属性为容器中的所有项公开同一容器。

 

必需事件

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

UI 自动化事件 说明
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId 属性更改事件。
UIA_ExpandCollapseExpandCollapseStatePropertyId 属性更改事件。
UIA_Invoke_InvokedEventId 如果控件支持 Invoke 控件模式,则必须支持此事件。
UIA_IsEnabledPropertyId 属性更改事件。 如果控件支持 IsEnabled 属性,它必须支持此事件。
UIA_IsOffscreenPropertyId 属性更改事件。 如果控件支持 IsOffscreen 属性,则必须支持此事件。
UIA_ItemStatusPropertyId 属性更改事件。 如果控件支持 ItemStatus 属性,它必须支持此事件。
UIA_MultipleViewCurrentViewPropertyId 属性更改事件。 如果控件支持 MultipleView 控件模式,则它必须支持此事件。
UIA_NamePropertyId 属性更改事件。
UIA_SelectionItem_ElementAddedToSelectionEventId 如果控件支持 SelectionItem 控件模式,则必须支持此事件。
UIA_SelectionItem_ElementRemovedFromSelectionEventId 如果控件支持 SelectionItem 控件模式,则必须支持此事件。
UIA_SelectionItem_ElementSelectedEventId 如果控件支持 SelectionItem 控件模式,则必须支持此事件。
UIA_StructureChangedEventId
UIA_ToggleToggleStatePropertyId 属性更改事件。 如果控件支持 切换 控件模式,则它必须支持此事件。
UIA_ValueValuePropertyId 属性更改事件。 如果控件支持 Value 控件模式,则它必须支持此事件。

 

备注

如果树项具有子大纲节点以外的子元素,则提供程序必须仔细而清楚地处理子对象信息。 在 UI 自动化 中,树结构由树层次结构本身处理。 通过具有一个或多个非大纲节点子节点,它们与实际子大纲节点之间的差异将变得严重不明确。

概念性

UI 自动化控件类型概述

UI 自动化概述