列表控件类型

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

列表 控件类型提供了一种方法来组织平面组或项目组,并允许用户选择其中一个或多个项。 List 控件类型对它可能包含的子元素的类型有松散的限制。 这使 UI 自动化提供程序能够支持用于选择容器的已知元素。

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

本主题包含以下部分。

典型树结构

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

控件视图 内容视图
包含对应于控件的元素。 从树中删除冗余信息,使辅助技术能够处理对最终用户有意义的最小信息集。
  • 列表
    • DataItem (0 或更多)
    • ListItem (0 或更多)
    • 组(0 个或多个)
    • ScrollBar (0、1 或 2)
  • 列表
    • DataItem (0 或更多)
    • ListItem (0 或更多)
    • 组(0 个或多个)

实现列表控件类型的控件(如列表控件)的控件视图包括:

  • 列表控件中的零个或多个项(项可以基于 ListItemDataItem 控件类型)
  • 列表控件中的零个或多个组控件
  • 零、一个或两个滚动条控件

实现列表控件类型(如列表控件)的控件的内容视图包括:

  • 列表控件中的零个或多个项(项可以基于 ListItemDataItem 控件类型)
  • 列表控件中的零个或多个组

列表控件不得具有分层关系的项,而不是组合在一起。 如果项具有 UI 自动化树中的子级,则列表容器应基于 控件类型。

列表控件中的可选项将从列表控件的 UI 自动化树中的子代中获取。 列表控件中的所有项都必须属于同一选择组。 列表中的可选项应公开为 listItem (而不是 DataItem)控件类型。

相关属性

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

UI 自动化属性 价值 笔记
UIA_AutomationIdPropertyId 请参阅备注。 此属性的值在 UI 自动化树的原始视图中的所有对等元素中必须是唯一的。
UIA_BoundingRectanglePropertyId 请参阅备注。 包含整个控件的最外侧矩形。
UIA_ClickablePointPropertyId 请参阅备注。 如果列表控件具有可单击点(可以单击该点以引起列表焦点),则必须通过此属性公开该点。 如果 UIA_IsOffscreenPropertyId 属性的值 TRUE,则尝试检索此属性将导致 UIA_E_NOCLICKABLEPOINT 错误。
UIA_ControlTypePropertyId 列表
UIA_HelpTextPropertyId 请参阅备注。 列表控件的帮助文本应该解释为什么要求用户从选项列表中做出选择。 例如,“从此列表中选择项目将设置监视器的显示分辨率。
UIA_IsContentElementPropertyId TRUE 列表控件始终包含在 UI 自动化树的内容视图中。
UIA_IsControlElementPropertyId TRUE 列表控件始终包含在 UI 自动化树的控件视图中。
UIA_IsKeyboardFocusablePropertyId 请参阅备注。 如果控件可以接收键盘焦点,它必须支持此属性。
UIA_LabeledByPropertyId 请参阅备注。 如果有静态文本标签,则此属性必须公开对该控件的引用。
UIA_LocalizedControlTypePropertyId 请参阅备注。 对应于 列表 控件类型的本地化字符串。 默认值为 en-US 或英语(美国)的“list”。
UIA_NamePropertyId 请参阅备注。 列表控件的 Name 属性的值应传达用户被要求从中选择的选项类别。 此属性通常从静态文本标签中获取其名称。 如果没有静态文本标签,应用程序开发人员必须公开 Name 属性的值。
列表控件唯一不需要此属性的时间是在另一个控件的子树中使用该控件。

所需的控件模式和属性

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

控件模式/模式属性 支持/值 笔记
IGridProvider 取决于 在需要按项提供网格导航时,实现 网格 控件模式。
IMultipleViewProvider 取决于 如果控件可以支持容器中项的多个视图,则实现 MultipleView 控件模式。
IScrollProvider 取决于 如果容器中的项可滚动,则实现 Scroll 控件模式。
ISelectionProvider 取决于 如果控件支持支持选择的列表控件类型,则控件必须在控件中包含的项之间维护选择状态时实现 选择 控件模式。 如果控件中的项不可选择,则可以使用 控件类型。
CanSelectMultiple 取决于 列表控件可以是单选容器或多选容器。
IsSelectionRequired 取决于 列表控件并不总是要求选择项。
ITableProvider 从不 列表 控件类型从不支持 控件模式。 如果控件需要支持此控件模式,控件应基于 DataGrid 控件类型。

必需事件

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

UI 自动化事件 笔记
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId 属性更改事件。
UIA_IsEnabledPropertyId 属性更改事件。 如果控件支持 IsEnabled 属性,则必须支持此事件。
UIA_IsOffscreenPropertyId 属性更改事件。 如果控件支持 IsOffscreen 属性,则必须支持此事件。
UIA_LayoutInvalidatedEventId 如果子项的布局可以更改,控件必须支持此事件。
UIA_MultipleViewCurrentViewPropertyId 属性更改事件。 如果控件支持 MultipleView 控件模式,则必须支持此事件。
UIA_ScrollHorizontallyScrollablePropertyId 属性更改事件。 如果控件支持 Scroll 控件模式,则必须支持此事件。
UIA_ScrollHorizontalScrollPercentPropertyId 属性更改事件。 如果控件支持 Scroll 控件模式,则必须支持此事件。
UIA_ScrollHorizontalViewSizePropertyId 属性更改事件。 如果控件支持 Scroll 控件模式,则必须支持此事件。
UIA_ScrollVerticalScrollPercentPropertyId 属性更改事件。 如果控件支持 Scroll 控件模式,则必须支持此事件。
UIA_ScrollVerticallyScrollablePropertyId 属性更改事件。 如果控件支持 Scroll 控件模式,则必须支持此事件。
UIA_ScrollVerticalViewSizePropertyId 属性更改事件。 如果控件支持 Scroll 控件模式,则必须支持此事件。
UIA_Selection_InvalidatedEventId 如果控件支持 选择 控件模式,则必须支持此事件。
UIA_StructureChangedEventId

概念

UI 自动化控件类型概述

UI 自动化概述