注释
本文档适用于想要使用 System.Windows.Automation 命名空间中定义的托管 UI 自动化类的 .NET Framework 开发人员。 有关 UI 自动化的最新信息,请参阅 Windows 自动化 API:UI 自动化。
本概述介绍MICROSOFT UI 自动化控件模式。 控件模式提供了一种对控件的功能进行分类和公开的方法,与控件类型或控件的外观无关。
UI 自动化使用控件模式来表示常见的控件行为。 例如,对于可调用的控件(如按钮),使用“调用”控件模式;对于具有滚动条的控件(如列表框、列表视图或组合框),使用“滚动”控件模式。 由于每个控件模式都表示单独的功能,因此可以组合它们来描述特定控件支持的完整功能集。
注释
聚合控件(由子控件生成,这些子控件提供由父级公开的功能的用户界面 (UI))应实现所有与每个子控件正常关联的控件模式。 反过来,不需要由这些子控件实现相同的这些控件模式。
UI 自动化控件模式组件
控件模式支持定义控件中可用的离散功能所需的方法、属性、事件和关系。
UI 自动化元素与其父级、子级和同级之间的关系描述了 UI 自动化树中的元素结构。
这些方法允许 UI 自动化客户端操作控件。
属性和事件提供有关控件模式的功能以及有关控件状态的信息。
控件模式与 UI 相关,因为接口与组件对象模型 (COM) 对象相关。 在 COM 中,可以查询对象以询问它支持哪些接口,然后使用这些接口访问功能。 在 UI 自动化中,UI 自动化客户端可以询问它支持的控件模式,然后通过受支持控件模式公开的属性、方法、事件和结构与控件进行交互。 例如,对于多行编辑框,UI 自动化提供程序实现 IScrollProvider。 当客户端知道 AutomationElement 支持 ScrollPattern 控件模式时,客户端可以使用该控件模式提供的属性、方法和事件来操作控件或访问有关控件的信息。
UI 自动化提供程序和客户端
UI 自动化提供程序实现控件模式,以公开控件支持的特定功能段的适当行为。
UI 自动化客户端访问 UI 自动化控件模式类的方法和属性,并利用它们获取有关 UI 的信息,或操作 UI。 这些控件模式类位于命名空间中 System.Windows.Automation (例如 InvokePattern ,和 SelectionPattern)。
客户端使用 AutomationElement 方法(如 AutomationElement.GetCurrentPropertyValue 或 AutomationElement.GetCachedPropertyValue)或公共语言运行时(CLR)访问器来访问模式上的 UI 自动化属性。 每个控件模式类都有一个字段成员(例如,InvokePattern.Pattern 或 SelectionPattern.Pattern),用于标识该控件模式,并且可以作为参数传递给 GetCachedPattern 或 GetCurrentPattern,以检索 AutomationElement 的模式。
动态控制模式
某些控件并不总是支持同一组控件模式。 当控件模式可供 UI 自动化客户端使用时,它们被视为受支持。 例如,只有当多行编辑框中包含的文本行多于其可查看区域时,才会启用垂直滚动。 删除足够的文本时,将禁用滚动,以便不再需要滚动。 对于此示例,根据控件的当前状态(编辑框中的文本量)动态支持 ScrollPattern 控件模式。
控制模式类和接口
下表介绍了 UI 自动化控件模式。 该表还列出了 UI 自动化客户端用于访问控件模式的类,以及 UI 自动化提供程序用来实现它们的接口。
控件模式类 | 供应商接口 | DESCRIPTION |
---|---|---|
DockPattern | IDockProvider | 用于可停靠在停靠容器中的控件。 例如,工具栏或工具面板。 |
ExpandCollapsePattern | IExpandCollapseProvider | 用于可展开或折叠的控件。 例如,应用程序中的菜单项,例如 “文件 ”菜单。 |
GridPattern | IGridProvider | 用于支持网格功能的控件,例如调整大小并移动到指定的单元格。 例如 Windows 资源管理器中的大图标视图或 Microsoft Word 中的不带标头的简单表格。 |
GridItemPattern | IGridItemProvider | 用于在网格中具有单元格的控件。 各个单元格应支持 GridItem 模式。 例如 Microsoft Windows 资源管理器详细信息视图中的每个单元格。 |
InvokePattern | IInvokeProvider | 用于可调用的控件,例如按钮。 |
MultipleViewPattern | IMultipleViewProvider | 用于能够在同一组信息、数据或子元素的多种展现方式之间进行切换的控件。 例如,列表视图控件,其中数据在缩略图、磁贴、图标、列表或详细信息视图中可用。 |
RangeValuePattern | IRangeValueProvider | 用于具有可应用于控件的值范围的控件。 例如,包含年份的微调器控件的范围为 1900 到 2010,而呈现月份的另一个微调器控件的范围为 1 到 12。 |
ScrollPattern | IScrollProvider | 用于可滚动的控件。 例如,当控件的可查看区域中显示的信息超过可显示范围时,控件的滚动条会处于活动状态。 |
ScrollItemPattern | IScrollItemProvider | 用于控件中包含可以滚动的各个列表项。 例如,包含在滚动列表中的单个项的列表控件,如组合框控件。 |
SelectionPattern | ISelectionProvider | 用于选择容器控件。 例如,列表框和组合框。 |
SelectionItemPattern | ISelectionItemProvider | 用于选择容器控件中的单个项,例如列表框和组合框。 |
TablePattern | ITableProvider | 用于包含网格和标头信息的控件。 例如,Microsoft Excel 工作表。 |
TableItemPattern | ITableItemProvider | 用于表格中的项目。 |
TextPattern | ITextProvider | 用于编辑公开文本信息的控件和文档。 |
TogglePattern | IToggleProvider | 用于可切换状态的控件。 例如,复选框和可选菜单项。 |
TransformPattern | ITransformProvider | 用于可调整大小、移动和旋转的控件。 转换控件模式的典型用途在设计器、窗体、图形编辑器和绘图应用程序中。 |
ValuePattern | IValueProvider | 允许客户端获取或设置那些不支持多个值范围的控件的值。 例如,日期时间选择器。 |
WindowPattern | IWindowProvider | 揭示特定于 Windows 的信息,这是 Microsoft Windows 操作系统的一个基本概念。 窗口的控件示例包括顶级应用程序窗口(Microsoft Word、Microsoft Windows 资源管理器等)、多文档界面(MDI)子窗口和对话框。 |