UI 自动化对 ListItem 控件类型的支持

更新:2007 年 11 月

本主题提供介绍 UI 自动化对 ListItem控件类型的支持。在 UI 自动化中,控件类型是一组条件,控件必须满足这些条件才能使用 ControlTypeProperty 属性。这些条件包括 UI 自动化树结构的特定准则、UI 自动化属性值和控件模式。

列表项控件是用来实现 ListItem 控件类型的控件示例。

以下几节定义了 ListItem 控件类型必需的 UI 自动化树结构、属性、控件模式和事件。UI 自动化的要求适用于所有列表控件,无论控件是 Windows Presentation Foundation (WPF)、Win32 还是 Windows 窗体。

本主题包括下列各节。

  • 必需的 UI 自动化树结构
  • 必需的 UI 自动化属性
  • 必需的 UI 自动化控件模式
  • 必需的 UI 自动化事件
  • 相关主题

必需的 UI 自动化树结构

下表描述了与列表项控件有关的 UI 自动化树的控件视图和内容视图,以及每个视图中可包含的内容。有关 UI 自动化树的更多信息,请参见 UI 自动化树概述

控件视图

内容视图

  • ListItem

    • 图像(0 个或 1 个)

    • 文本(0 个或 1 个)

  • ListItem

UI 自动化树的内容视图中列表项控件的子控件必须总是为“0”。如果在控件的结构中,其他项包含在列表项下,则应遵循 UI 自动化对 TreeItem 控件类型的支持控件类型的要求。

必需的 UI 自动化属性

下表列出了值或定义与列表项控件密切相关的 UI 自动化属性。有关 UI 自动化属性的更多信息,请参见客户端的 UI 自动化属性

UI 自动化属性

说明

AutomationIdProperty()

请参见“说明”。

此属性的值必须在应用程序中的所有控件中保持唯一。

BoundingRectangleProperty

请参见“说明”。

此属性的该值应包括图像的区域和列表项的文本内容。

ClickablePointProperty

视情况而定

如果列表控件有一个可单击的点(单击该点可导致列表获得焦点),则该点必须通过此属性公开。如果列表控件完全被子代列表项覆盖,它将引发 NoClickablePointException 以指示客户端必须要求该列表控件中的项提供可单击点。

NameProperty

请参见“说明”。

列表项控件的名称属性值来自该项的文本内容。

LabeledByProperty

请参见“说明”。

如果存在静态文本标签,则此属性必须公开对该控件的引用。

ControlTypeProperty

ListItem

此值对于所有的 UI 框架均相同。

LocalizedControlTypeProperty

“列表项”

与 ListItem 控件类型相对应的本地化字符串。

IsContentElementProperty

True

列表控件始终包括在 UI 自动化树的内容视图中。

IsControlElementProperty

True

列表控件始终包括在 UI 自动化树的控件视图中。

IsKeyboardFocusableProperty

True

如果容器可以接受键盘输入,则该属性值应当为 true。

HelpTextProperty

""

列表控件的帮助文本应当解释为什么要求用户从选项列表中进行选择。例如,“从该列表中选择某项将会为显示器设置显示分辨率”。

ItemTypeProperty

视情况而定

应为表示基础对象的列表项控件公开此属性。这些列表项控件通常具有一个与控件关联的图标,用户将其与基础对象相关联。

IsOffscreenProperty

视情况而定

此属性必须返回一个值,该值指示列表项当前是否滚动到实现 Scroll 控件模式的父容器内的视图中。

必需的 UI 自动化控件模式

下表列出了必须由列表项控件支持的 UI 自动化控件模式。有关控件模式的更多信息,请参见 UI 自动化控件模式概述

控件模式/模式属性

支持/值

说明

ISelectionItemProvider

列表项控件必须实现此控件模式。这允许列表项控件传达它们何时被选中。

IScrollItemProvider

视情况而定

如果列表项包含在可滚动的容器内,则必须实现此控件模式。

IToggleProvider

视情况而定

如果列表项可以检查并且操作不执行选择状态更改,则必须实现此控件模式。

IExpandCollapseProvider

视情况而定

如果可以操作项以显示或隐藏信息,则必须实现此控件模式。

IValueProvider

视情况而定

如果可以编辑项,则必须实现此控件模式。对列表项控件的更改将导致对 NamePropertyValue 的值的更改。

IGridItemProvider

视情况而定

如果列表容器内支持逐项空间导航并且该容器按行和列排列,则必须实现 Grid Item 控件模式。

IInvokeProvider

视情况而定

如果项有可以对其执行的命令(与选择分离),则必须实现此控件模式。这通常是与双击列表项控件关联的操作。示例包括从 Microsoft Windows 资源管理器 启动文档或者在 Microsoft Windows Media Player 中播放音乐文件。

必需的 UI 自动化事件

下表列出了必须由所有列表项控件支持的 UI 自动化事件。有关事件的更多信息,请参见 UI 自动化事件概述

UI 自动化事件

支持

说明

InvokedEvent

视情况而定

ElementAddedToSelectionEvent

必需

ElementRemovedFromSelectionEvent

必需

ElementSelectedEvent

必需

BoundingRectangleProperty property-changed 事件。

必需

IsOffscreenProperty property-changed 事件。

必需

IsEnabledProperty property-changed 事件。

必需

NameProperty

必需

ItemStatusProperty property-changed 事件。

视情况而定

ExpandCollapseStateProperty property-changed 事件。

视情况而定

ValueProperty property-changed 事件。

视情况而定

ToggleStateProperty property-changed 事件。

视情况而定

AutomationFocusChangedEvent

必需

StructureChangedEvent

必需

请参见

概念

UI 自动化控件类型概述

UI 自动化概述

参考

ListItem