实现 UI 自动化 Grid 控件模式
更新:2007 年 11 月
本主题介绍实现 IGridProvider 的准则和约定,包括有关属性、方法和事件的信息。本概述的结尾列出了指向其他参考资料的链接。
GridPattern 控件模式用于支持可充当子元素集合的容器的控件。该元素的子级必须实现 IGridItemProvider,而且必须在可以按行和列进行遍历的二维逻辑坐标系中进行组织。有关实现此控件模式的控件示例,请参见 UI 自动化客户端的控件模式映射。
本主题包括下列各节。
- 实现准则和约定
- IGridProvider 必需的成员
- 异常
- 相关主题
实现准则和约定
实现 Grid 控件模式时,请注意以下准则和约定:
网格坐标从零开始,其左上角单元格(或者右上角单元格,具体情况取决于区域设置)的坐标为 (0, 0)。
如果某个单元格为空,则必须仍返回 UI 自动化元素,以便支持该单元格的 ContainingGrid 属性。当网格中子元素的布局类似于未对齐的数组时,可能会出现上述情况(请参见下面的示例)。
具有空坐标的 Grid 控件的示例
具有单项的网格仍是实现 IGridProvider 所必需的,但前提是它在逻辑上被视为网格。网格中子项的数量是非实体性的。
处于隐藏状态的行和列(具体情况取决于所实现的提供程序)可以加载到 UI 自动化树中,因此将在 RowCount 和 ColumnCount 属性中得以反映。如果处于隐藏状态的行和列尚未加载,则不应当对它们进行计数。
IGridProvider 不允许对网格进行实时操作;必须实现 ITransformProvider 才能启用此功能。
可以使用 StructureChangedEventHandler 来侦听对网格的结构和布局进行的更改(如添加、移除和合并单元格)。
可以使用 AutomationFocusChangedEventHandler 来跟踪对网格中各项或各个单元格的遍历情况。
IGridProvider 必需的成员
实现 IGridProvider 接口需要以下属性和方法。
必需的成员 |
类型 |
说明 |
---|---|---|
属性 |
无 |
|
属性 |
无 |
|
方法 |
无 |
没有与此控件模式关联的事件。
异常
提供程序必须引发以下异常。
异常类型 |
条件 |
---|---|
|
|
|