TreeItem 控件类型

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

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

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

本主题包含以下部分。

典型树结构

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

控件视图 内容视图
  • TreeItem
    • CheckBox (0 或 1)
    • 图像(0 或 1)
    • 按钮 (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 自动化控件模式概述

控件模式/模式属性 支持/值 笔记
IExpandCollapseProvider 必填 所有树项都必须支持 ExpandCollapse 控件模式,因为所有项都可以展开或折叠。
ExpandCollapseState 展开、折叠或叶节点 树项是未展开或折叠的叶节点。
IInvokeProvider 取决于 如果树项可以执行命令,则实现 调用 控件模式。
IScrollItemProvider 取决于 如果树容器支持 Scroll 控件模式,则实现 ScrollItem 控件模式。
ISelectionItemProvider 取决于 实现 SelectionItem 控件模式(如果用户返回树容器时)可以保留活动选择。
SelectionContainer 必填 此属性为容器中的所有项公开相同的容器。

 

必需事件

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

UI 自动化事件 笔记
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId 属性更改事件。
UIA_ExpandCollapseExpandCollapseStatePropertyId 属性更改事件。
UIA_Invoke_InvokedEventId 如果控件支持 调用 控件模式,则必须支持此事件。
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 属性更改事件。 如果控件支持 Toggle 控件模式,则必须支持此事件。
UIA_ValueValuePropertyId 属性更改事件。 如果控件支持 控件模式,则它必须支持此事件。

 

言论

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

概念

UI 自动化控件类型概述

UI 自动化概述