注释
本文档适用于想要使用 System.Windows.Automation 命名空间中定义的托管 UI 自动化类的 .NET Framework 开发人员。 有关 UI 自动化的最新信息,请参阅 Windows 自动化 API:UI 自动化。
本主题介绍实现 IGridProvider的准则和约定,包括有关属性、方法和事件的信息。 概述末尾列出了指向其他引用的链接。
控件 GridPattern 模式用于支持充当子元素集合容器的控件。 此元素的子级必须实现 IGridItemProvider 并组织在二维逻辑坐标系中,该系统可以通过行和列遍历。 有关实现此控件模式的控件示例,请参阅 UI 自动化客户端的控件模式映射。
实施准则和约定
实现网格控件模式时,请注意以下准则和约定:
网格坐标从零开始,左上角单元格(或右上角单元格,具体取决于区域设置)的坐标为 (0, 0)。
如果单元格为空,则仍必须返回 UI 自动化元素以支持 ContainingGrid 该单元格的属性。 当网格中的子元素布局类似于不规则数组时,可能会发生这种情况(请参阅下面的示例)。
坐标为空的 Grid 控件的示例
只有一项的网格仍需要实现 IGridProvider (如果它逻辑上被视为网格)。 网格中的子项数并不重要。
隐藏的行和列,具体取决于提供程序的实现,可能会加载到 UI 自动化树中,因此将反映在RowCount和ColumnCount属性中。 如果隐藏的行和列尚未加载,则不应对它们进行计数。
IGridProvider 不启用网格的主动操作;必须实现 ITransformProvider 才能启用此功能。
使用StructureChangedEventHandler侦听网格的结构或布局的变化,例如单元格的添加、删除或合并。
使用 AutomationFocusChangedEventHandler 来跟踪遍历的网格的项或单元格。
IGridProvider 的必需成员
实现 IGridProvider 接口需要以下属性和方法。
必需成员 | 类型 | 注释 |
---|---|---|
RowCount | 资产 | 没有 |
ColumnCount | 资产 | 没有 |
GetItem | 方法 | 没有 |
此控件模式没有关联的事件。
例外
提供程序必须引发以下异常。
异常类型 | 条件 |
---|---|
ArgumentOutOfRangeException | GetItem - 如果请求的行坐标大于RowCount或列坐标大于 。ColumnCount |
ArgumentOutOfRangeException | GetItem - 如果请求的行或列坐标小于零。 |