UI 自动化对 DataItem 控件类型的支持
更新:2007 年 11 月
本主题介绍 Microsoft UI 自动化对 DataItem 控件类型的支持。在 UI 自动化中,控件类型是一组条件,控件为了使用 ControlTypeProperty 属性必须满足这组条件。这些条件包括 UI 自动化树结构的特定准则、UI 自动化属性值和控件模式。
联系人列表中的条目就是数据项控件的示例。数据项控件包含最终用户感兴趣的信息。因为它包含丰富的信息,所以它比简单列表项复杂得多。
以下几节定义了 DataItem 控件类型必需的 UI 自动化树结构、属性、控件模式和事件。UI 自动化的要求适用于所有数据项控件,无论控件是 Windows Presentation Foundation (WPF)、Win32 还是 Windows 窗体。
本主题包括下列各节。
- 必需的 UI 自动化树结构
- 必需的 UI 自动化属性
- 必需的 UI 自动化控件模式
- 处理大列表中的数据项
- 必需的 UI 自动化事件
- DataItem 控件类型示例
- 相关主题
必需的 UI 自动化树结构
下表描述了与数据项控件有关的 UI 自动化树的控件视图和内容视图,以及每个视图中可包含的内容。有关 UI 自动化树的更多信息,请参见 UI 自动化树概述。
UI 自动化树 - 控件视图 |
UI 自动化树 - 内容视图 |
---|---|
|
|
必需的 UI 自动化属性
下表列出了值或定义与数据项控件密切相关的属性。有关 UI 自动化属性的更多信息,请参见客户端的 UI 自动化属性。
属性 |
值 |
说明 |
---|---|---|
AutomationIdProperty() |
请参见“说明”。 |
此属性的值必须在应用程序中的所有控件中保持唯一。 |
请参见“说明”。 |
包含整个控件的最外面的矩形。 |
|
请参见“说明”。 |
有边框时支持。如果边框中并非每个点都是可单击的,那么,在执行专用的命中测试时,请重写并提供一个可单击的点。 |
|
DataItem |
此值对于所有的 UI 框架均相同。 |
|
True |
数据项控件必须总是为内容。 |
|
True |
数据项控件必须总是为控件。 |
|
请参见“说明”。 |
如果该控件可以接收键盘焦点,则它必须支持此属性。 |
|
请参见“说明”。 |
如果控件包含可进行动态更新的主题,则必须支持该属性,以便辅助技术可以在元素的状态发生变化时接收更新。 |
|
请参见“说明”。 |
这个字符串值向最终用户传达该项所表示的基础对象。“Media File”或“Contact”就是这样的值。 |
|
Null |
数据项控件没有静态文本标签。 |
|
“数据项” |
与 DataItem 控件类型相对应的本地化字符串。 |
|
请参见“说明”。 |
数据项控件始终包含一个关于某个内容的主要文本元素,用户希望将该内容作为最能表示该项语义的标识符来关联。 |
必需的 UI 自动化控件模式
下表列出了必须由所有数据项控件支持的 Microsoft UI 自动化控件模式。有关控件模式的更多信息,请参见 UI 自动化控件模式概述。
控件模式/模式属性 |
支持/值 |
说明 |
---|---|---|
视情况而定 |
如果可以通过展开或折叠数据项来显示和隐藏信息,则必须支持 Expand Collapse 模式。 |
|
视情况而定 |
当数据项集合位于可在空间上逐项导航的容器中时,该数据项将支持 Grid Item 模式。 |
|
视情况而定 |
所有的数据项都支持如下功能:当屏幕上容纳不下数据容器中的项时,数据容器中的数据项将滚入具有 Scroll Item 模式的视图。 |
|
是 |
所有的数据项都必须支持 Selection Item 模式以指示该项是在何时选择的。 |
|
视情况而定 |
如果数据项包含在 Data Grid 控件类型中,则它将支持此模式。 |
|
视情况而定 |
如果数据项包含一个状态,则可以对它进行遍历。 |
|
视情况而定 |
如果数据项的主要文本是可编辑的,则必须支持 Value 模式。 |
处理大列表中的数据项
大列表通常是指在 UI 框架中进行虚拟化以帮助提高性能的数据。因此,UI 自动化客户端不能使用 UI 自动化查询功能,按照与其他项容器中相同的方式来擦除整个树中的内容。在访问数据项的完整信息之前,客户端应当将该项滚入相应的视图中。
在针对数据项的 UI 自动化元素调用 SetFocus 时,Microsoft Windows 资源管理器 case 将成功返回,并导致将焦点设置在数据项子树中的 Edit 上。
必需的 UI 自动化事件
下表列出了必须由所有数据项控件支持的 UI 自动化事件。有关事件的更多信息,请参见 UI 自动化事件概述。
UI 自动化事件 |
支持 |
说明 |
---|---|---|
必需 |
无 |
|
BoundingRectangleProperty property-changed 事件。 |
必需 |
无 |
IsEnabledProperty property-changed 事件。 |
必需 |
无 |
IsOffscreenProperty property-changed 事件。 |
必需 |
无 |
NameProperty property-changed 事件。 |
必需 |
无 |
必需 |
无 |
|
视情况而定 |
无 |
|
ExpandCollapseStateProperty property-changed 事件。 |
视情况而定 |
无 |
必需 |
无 |
|
必需 |
无 |
|
必需 |
无 |
|
ToggleStateProperty property-changed 事件。 |
视情况而定 |
无 |
ValueProperty property-changed 事件。 |
视情况而定 |
无 |
DataItem 控件类型示例
下图说明了 List View 控件中的 DataItem 控件类型。
下表显示了与数据项控件有关的 UI 自动化树的控件视图和内容视图。每个自动化元素的控件模式都显示在括号中。
UI 自动化树 - 控件视图 |
UI 自动化树 - 内容视图 |
---|---|
数据项(Sort、Table、Selection 和 Grid)
|
数据项(Sort、Table、Selection 和 Grid)
|