打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
UIA PATTERN
userphoto

2017.02.19

关注
注意

本文档适用于想要使用 System.Windows.Automation 命名空间中定义的托管 UI 自动化 类的 .NET Framework 开发人员。 有关 UI 自动化 的最新信息,请参阅 Windows 自动化 API:UI 自动化

此概述介绍 Microsoft UI 自动化 控件模式。 控件模式提供了一种方法,用于独立于控件类型或控件的外观对控件的功能进行分类和公开。

UI 自动化 使用控件模式表示常见的控件行为。 例如,你针对可被调用的控件(如按钮)使用调用控件模式并针对具有滚动条的控件(如列表框、列表视图或组合框)使用“滚动”控件模式。 由于每个控件模式表示单独的功能,它们可结合使用以描述由特定控件支持的完整功能组合。

注意

聚合控件(由子控件生成,这些子控件提供由父级公开的功能的 用户界面 (UI))应实现所有与每个子控件正常关联的控件模式。 反过来,不需要由这些子控件实现相同的这些控件模式。

 

 

控件模式支持定义控件中可用的功能的离散件所需的方法、属性、事件和关系。

  • UI 自动化元素和其父级、子级和同级之间的关系描述 UI 自动化 树内该元素的结构。

  • 这些方法允许 UI 自动化客户端操作控件。

  • 属性和事件提供有关控件模式的功能的信息以及有关控件状态的信息。

控件模式与 UI 关联,如同接口与 组件对象模型 (COM) 对象关联。 在 COM 中,你可以查询一个对象以询问该对象所支持的接口,然后使用这些接口来访问功能。 在 UI 自动化 中,UI 自动化客户端可以询问一个控件其所支持的控件模式,然后通过由支持的控件模式公开的属性、方法、事件和结构来与该控件进行交互。 例如,对于多行编辑框,UI 自动化提供程序实现 IScrollProvider 当客户端知道 AutomationElement 支持 ScrollPattern 控件模式时,它可以使用由该控件模式公开的属性、方法和事件来操作该控件或访问有关该控件的信息。

UI 自动化提供程序实现控件模式以公开由控件支持的特定功能片段的适当行为。

UI 自动化客户端访问 UI 自动化 控件模式类的方法和属性并使用它们获取有关 UI 的信息或操作 UI。 这些控件模式类位于 System.Windows.Automation 命名空间(例如,InvokePatternSelectionPattern)。

客户端使用 AutomationElement 方法(如 AutomationElement.GetCurrentPropertyValueAutomationElement.GetCachedPropertyValue)或 公共语言运行时 (CLR) 访问器以访问模式上的 UI 自动化 属性。 每个控件模式类具有一个字段成员(例如,InvokePattern.Pattern SelectionPattern.Pattern),该成员标识该控件模式,并可作为参数传递给 GetCachedPatternGetCurrentPattern 以检索 AutomationElement 的该模式。

某些控件并不总是支持同一组控件模式。 当控件模式可用于 UI 自动化客户端时,则被视为受支持。 例如,多行编辑框仅在其包含多行可在其可视区域内显示的文本时才启用垂直滚动。 当删除了足够多的文本以便不再需要滚动时,滚动才被禁用。 就此示例而言,ScrollPattern 控件模式以动态方式受到支持,具体取决于该控件的当前状态(编辑框中的文本量)。

下表描述 UI 自动化 控件模式。 该表还列出 UI 自动化客户端用于访问控件模式的类,以及由 UI 自动化提供程序用于实现它们的接口。

控件模式类

提供程序接口

描述

DockPattern 

IDockProvider

用于可在停靠容器中停靠的控件。 例如,工具栏或工具调色板。

ExpandCollapsePattern

IExpandCollapseProvider

用于可展开或折叠的控件。 例如,应用程序中的菜单项,如“文件”菜单。

GridPattern

IGridProvider

用于支持网格功能(如调整大小和移动到指定单元格)的控件。 例如 Windows Explorer 中的大图标视图或 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

用于可调整大小、移动和旋转的控件。 Transform 控件模式通常用于设计器、窗体、图形编辑器和绘图应用程序。

ValuePattern

IValueProvider

允许客户端在不支持某个值范围的控件上获取或设置值。 例如,日期时间选择器。

WindowPattern

IWindowProvider

公开特定于窗口的信息,窗口对于 Microsoft Windows 操作系统而言是一个基本概念。 窗口控件示例,包括顶级应用程序窗口(Microsoft Word、Microsoft Windows 资源管理器 等)、多文档界面 (MDI) 子级窗口和对话框。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【设计模式学习】MFC 中的设计模式分析
微软UI自动化测试的技术演变(上)(1)
JPivot中的设计模式
表现层持续解耦带来的模式转变 MVC MVP MVVM (微软WPF带来的团队变化和软件技...
.NET MVVM设计模式简介
WPF中MVVM模式原理分析与实践
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服