![]() |
---|
本文档的目标读者是欲使用 System.Windows.Automation 命名空间中定义的托管 UI Automation类的 .NET Framework 开发人员。有关 UI Automation的最新信息,请参见 Windows Automation API: UI Automation(Windows 自动化 API:UI 自动化)。 |
本主题介绍 UI Automation对 List 控件类型的支持。 在 UI Automation中,控件类型是一组条件,控件必须满足这些条件才能使用 ControlTypeProperty 属性。 这些条件包括 UI Automation树结构的特定准则、UI Automation属性值和控件模式。
List 控件类型提供对一个或多个平面组中的项进行组织的方法,并允许用户选择其中的一项或多项。 List 控件类型对于其中可包含的子元素的类型具有松散的限制。 这使 UI 自动化提供程序可以支持选择容器中的已知元素。
以下几节中的 UI Automation要求适用于用来实现 List 控件类型的所有控件,无论控件是 Windows Presentation Foundation (WPF)、Win32 还是 Windows Forms。 列表容器控件是用来实现 List 控件类型的控件示例。
本主题包括下列各节。
- 必需的 UI 自动化树结构
- 必需的 UI 自动化属性
- 必需的 UI 自动化控件模式和属性
- 必需的 UI 自动化事件
- 相关主题
必需的 UI 自动化树结构
下表描述了与列表控件有关的 UI Automation树的两个视图,以及每个视图中可包含的内容。 控件视图仅包含作为控件的元素,内容视图移除了树中的冗余信息。 例如,用来对组合框进行标记的文本控件将作为 ComboBox NameProperty 公开。 由于文本控件已经按这种方式通过控件视图公开,它不必公开两次,因此系统会将它从内容视图中移除。 有关 UI Automation树的更多信息,请参见 UI 自动化树概述。
控件视图 |
内容视图 |
---|---|
包含与控件相对应的元素。 |
从树中移除冗余的信息,以便辅助技术处理一小组对最终用户有意义的信息。 |
List
|
列表
|
对于实现 List 控件类型的控件(如列表控件),其控件视图包括:
列表控件中的零个或多个项(这些项可以基于 List Item 或 Data Item 控件类型)
列表控件中的零个或多个组控件
零个、一个或两个滚动条控件
用来实现 List 控件类型(如列表控件)的控件的内容视图包含:
列表控件中的零个或多个项(这些项可以基于 List Item 或 Data Item 控件类型)
列表控件中的零个或多个组
列表控件中的项只能组合在一起,而不能具有分层关系。 如果这些项在 UI Automation树中具有子级,则列表容器应当基于 Tree 控件类型。
列表控件中可选择的项将可以从列表控件 UI Automation树中的子代使用。 列表控件中的所有项都必须属于同一个选择组。 列表中的可选择项应以 ListItem(而不是 DataItem)控件类型公开。
必需的 UI 自动化属性
下表列出了值或定义与列表控件密切相关的 UI Automation属性。 有关 UI Automation属性的更多信息,请参见 客户端的 UI 自动化属性。
UI Automation属性 |
值 |
注释 |
---|---|---|
请参见“说明”。 |
此属性的值在应用程序的所有控件中都必须保持唯一。 |
|
请参见“说明”。 |
包含整个控件的最外面的矩形。 |
|
请参见“说明”。 |
如果列表控件有一个可单击的点(单击该点可导致列表获得焦点),则该点必须通过此属性公开。 如果 IsOffScreen 属性的值为 true,则将引发 NoClickablePointException。 |
|
请参见“说明”。 |
如果该控件可以接收键盘焦点,则它必须支持此属性。 |
|
请参见“说明”。 |
列表控件的 Name 属性值应当传达要求用户从中进行选择的选项类别。 此属性通常从静态文本标签获取其名称。 如果没有静态文本标签,则应用程序开发人员必须公开 Name 属性的值。 只有当列表控件用在另一个控件的子树中时,才不需要此属性。 |
|
请参见“说明”。 |
如果存在静态文本标签,则此属性必须公开对该控件的引用。 |
|
List |
此值对于所有的 UI 框架均相同。 |
|
“列表” |
与 List 控件类型相对应的本地化字符串。 |
|
True |
列表控件始终包括在 UI Automation树的内容视图中。 |
|
True |
列表控件始终包括在 UI Automation树的控件视图中。 |
|
True |
如果容器可以接受键盘输入,则该属性值应当为 true。 |
|
请参见“说明”。 |
列表控件的帮助文本应当解释为什么要求用户从选项列表中进行选择。 例如,“从该列表中选择某项将会为显示器设置显示分辨率”。 |
必需的 UI 自动化控件模式和属性
下表列出了必须由列表控件支持的 UI Automation控件模式。 有关控件模式的更多信息,请参见 UI 自动化控件模式概述。
控件模式/模式属性 |
支持/值 |
注释 |
---|---|---|
必需 |
如果在控件中所包含的项之间保持选择状态,则支持 List 控件类型的所有控件都必须实现 ISelectionProvider。 如果容器中包含的项是不可选择的,则必须使用 Group 控件类型。 |
|
视情况而定 |
列表控件不总是要求项处于已选择状态。 |
|
视情况而定 |
列表控件可以是单选容器,也可以是多选容器。 |
|
视情况而定 |
如果容器中的项是可滚动的,则实现此控件模式。 |
|
视情况而定 |
如果需要实现项级别的网格导航,则实现此模式。 |
|
视情况而定 |
如果该控件可以支持容器中各项的多个视图,则实现此控件模式。 |
|
从不 |
List 控件类型从不支持 ITableProvider。 如果该控件应当支持此控件模式,则该控件应当基于 Data Grid 控件类型。 |
必需的 UI 自动化事件
下表列出了必须由所有列表控件支持的 UI Automation事件。 有关事件的更多信息,请参见 UI 自动化事件概述。
UI Automation事件 |
支持/值 |
注释 |
---|---|---|
视情况而定 |
无 |
|
视情况而定 |
无 |
|
BoundingRectangleProperty property-changed 事件。 |
必需 |
无 |
IsOffscreenProperty property-changed 事件。 |
必需 |
无 |
IsEnabledProperty property-changed 事件。 |
必需 |
无 |
CurrentViewProperty property-changed 事件。 |
视情况而定 |
无 |
HorizontallyScrollableProperty property-changed 事件。 |
视情况而定 |
无 |
HorizontalScrollPercentProperty property-changed 事件。 |
视情况而定 |
无 |
HorizontalViewSizeProperty property-changed 事件。 |
视情况而定 |
无 |
VerticalScrollPercentProperty property-changed 事件。 |
视情况而定 |
无 |
VerticallyScrollableProperty property-changed 事件。 |
视情况而定 |
无 |
VerticalViewSizeProperty property-changed 事件。 |
视情况而定 |
无 |
必需 |
无 |
|
必需 |
无 |