UI 自动化属性概述
注意 |
---|
本文档的目标读者是欲使用 System.Windows.Automation 命名空间中定义的托管 UI Automation类的 .NET Framework 开发人员。有关 UI Automation的最新信息,请参见 Windows Automation API: UI Automation(Windows 自动化 API:UI 自动化)。 |
UI 自动化提供程序公开 Microsoft UI Automation元素的属性。 这些属性使 UI 自动化客户端应用程序能够发现有关user interface (UI) 各部分(特别是控件)的信息,包括静态数据和动态数据。
本主题包括下列各节。
- 属性标识符
- 按类别列出的属性
- 本地化
- 属性和事件
- 相关主题
本节概括了 Microsoft UI Automation属性。 下面各主题中提供了更具体的信息:
属性标识符
每个属性都由一个数字和名称标识。 属性的名称仅用于调试和诊断。 提供程序使用数字 IDs 来标识传入的属性请求。 但是,客户端应用程序只使用封装了数字和名称的 AutomationProperty 来标识它们希望检索的属性。
代表特定属性的 AutomationProperty 对象在各个类中以字段的形式提供。 出于安全原因,UI 自动化提供程序将从 Uiautomationtypes.dll 中包含的一组单独的类中获取这些对象。
下表按包含 AutomationProperty IDs 的类对属性进行分类。
属性的种类 |
客户端从中获取 ID |
提供程序从中获取 ID |
---|---|---|
所有元素共有的属性(请参见下表) |
||
停靠窗口的位置 |
||
可展开和折叠的元素的状态 |
||
网格中某项的属性 |
||
网格的属性 |
||
具有多个视图的元素的当前和支持的视图 |
||
在一定范围的值内移动的元素(如滑块)的属性 |
||
滚动窗口的属性 |
||
可选择的某项(如列表中的某项)的状态和容器 |
||
包含选择项的控件的属性 |
||
表中某项的列和行标题 |
||
表的列和行标题以及方向 |
||
切换控件的状态 |
||
可移动、旋转或调整大小的元素的功能 |
||
具有值的元素的值和读/写功能 |
||
窗口的功能和状态 |
按类别列出的属性
下表对其 IDs 位于 AutomationElement 和 AutomationElementIdentifiers 中的属性进行分类。 这些属性是所有控件共有的。 很少一些属性在提供程序应用程序的生存期内可能是静态的;大多数动态属性都与控件模式关联。
**“属性访问”**列列出了每个属性除 GetCurrentPropertyValue 和 GetCachedPropertyValue 之外的任何其他访问器。 有关在客户端应用程序中获取属性的更多信息,请参见客户端的 UI 自动化属性。
注意 |
---|
有关每个属性的具体信息,请访问“属性访问”列中的链接。 |
显示特性
属性标识符 |
属性访问 |
---|---|
无 |
|
元素类型
属性标识符 |
属性访问 |
---|---|
标识
属性标识符 |
属性访问 |
---|---|
交互
属性标识符 |
属性访问 |
---|---|
对模式的支持
属性标识符 |
属性访问 |
---|---|
杂项
属性标识符 |
属性访问 |
---|---|
本地化
UI Automation提供程序应按照操作系统的语言呈现下列属性:
属性和事件
property-changed 事件的概念与 UI Automation中的属性息息相关。 对于动态属性,客户端应用程序需要一种途径来了解属性值已更改,以便它能够用某种其他方式更新信息缓存或对新信息做出响应。
当 UI 中的内容发生更改时,提供程序将引发事件。 例如,如果选中或清除了复选框,则提供程序的切换模式实现将引发 property-changed 事件。 提供程序可以有选择地引发事件,具体情况取决于任何客户端是在侦听事件还是在侦听特定事件。
并非所有属性更改都会引发事件;这完全由元素的 UI 自动化提供程序实现所决定。 例如,列表框的标准代理提供程序在 SelectionProperty 更改时不会引发事件。 相反,在这种情况下,应用程序必须侦听 ElementSelectedEvent。
客户端通过订阅事件来侦听事件。 订阅事件是指创建可处理事件的委托方法,然后将方法随将在这些方法中处理的特定事件一起传递给 UI Automation。 特别是对于 property-changed 事件而言,客户端必须实现 AutomationPropertyChangedEventHandler。