UI 自动化属性概述
备注
本文档适用于想要使用 System.Windows.Automation 命名空间中定义的托管 UI 自动化类的 .NET Framework 开发人员。 有关 UI 自动化的最新信息,请参阅 Windows 自动化 API:UI 自动化。
UI 自动化提供程序公开 Microsoft UI 自动化元素的属性。 这些属性使 UI 自动化客户端应用程序能够发现有关用户界面 (UI) 各部分(特别是控件)的信息,包括静态数据和动态数据。
本部分是 Microsoft UI 自动化属性的一般概述。 下面各主题中提供了更具体的信息:
属性标识符
每个属性都由一个数字和名称标识。 属性的名称仅用于调试和诊断。 提供程序使用数字 ID 来标识传入的属性请求。 但是,客户端应用程序只使用封装了数字和名称的 AutomationProperty来标识它们希望检索的属性。
表示特定属性的AutomationProperty 对象在各个类中以字段的形式提供。 出于安全原因,UI 自动化提供程序将从 Uiautomationtypes.dll 中包含的一组单独的类中获取这些对象。
下表按包含 AutomationPropertyID 的类对属性进行分类。
属性的种类 | 客户端从中获取 ID | 提供程序从中获取 ID |
---|---|---|
所有元素共有的属性(请参阅下表) | AutomationElement | AutomationElementIdentifiers |
停靠窗口的位置 | DockPattern | DockPatternIdentifiers |
可展开和折叠的元素的状态 | ExpandCollapsePattern | ExpandCollapsePatternIdentifiers |
网格中某项的属性 | GridItemPattern | GridItemPatternIdentifiers |
网格的属性 | GridPattern | GridPatternIdentifiers |
具有多个视图的元素的当前和支持的视图 | MultipleViewPattern | MultipleViewPatternIdentifiers |
在一定范围的值内移动的元素(如滑块)的属性 | RangeValuePattern | RangeValuePatternIdentifiers |
滚动窗口的属性 | ScrollPattern | ScrollPatternIdentifiers |
可选择的某项(如列表中的某项)的状态和容器 | SelectionItemPattern | SelectionItemPatternIdentifiers |
包含选择项的控件的属性 | SelectionPattern | SelectionPatternIdentifiers |
表中某项的列和行标题 | TableItemPattern | TableItemPatternIdentifiers |
表的列和行标题以及方向 | TablePattern | TablePatternIdentifiers |
切换控件的状态 | TogglePattern | TogglePatternIdentifiers |
可移动、旋转、或调整大小的元素的功能 | TransformPattern | TransformPatternIdentifiers |
具有值的元素的值和读/写功能 | ValuePattern | ValuePatternIdentifiers |
窗口的功能和状态 | WindowPattern | WindowPatternIdentifiers |
按类别排列的属性
下表对其 ID 位于 AutomationElement 和 AutomationElementIdentifiers 中的属性进行分类。 这些属性是所有控件共有的。 很少一些属性在提供程序应用程序的生存期内可能是静态的;大多数动态属性都与控件模式关联。
除 和 之外, GetCurrentPropertyValueGetCachedPropertyValue“属性访问”列还列出了每个属性的任何其他访问器。 有关在客户端应用程序中获取属性的详细信息,请参阅 UI Automation Properties for Clients。
备注
有关每个属性的具体信息,请访问 “属性访问”列中的链接。
显示特征
属性标识符 | 和 |
---|---|
BoundingRectangleProperty | BoundingRectangle |
CultureProperty | 不适用 |
HelpTextProperty | HelpText |
IsOffscreenProperty | IsOffscreen |
OrientationProperty | Orientation |
元素类型
属性标识符 | 和 |
---|---|
ControlTypeProperty | ControlType |
IsContentElementProperty | IsContentElement |
IsControlElementProperty | IsControlElement |
ItemTypeProperty | ItemType |
LocalizedControlTypeProperty | LocalizedControlType |
标识
交互
对模式的支持
杂项
属性标识符 | 和 |
---|---|
IsRequiredForFormProperty | IsRequiredForForm |
IsPasswordProperty | IsPassword |
ItemStatusProperty | ItemStatus |
本地化
UI 自动化提供程序应按照操作系统的语言呈现下列属性:
属性和事件
属性更改事件的概念与 UI 自动化中的属性密切相关。 对于动态属性,客户端应用程序需要一种途径来了解属性值已更改,以便它能够用某种其他方式更新信息缓存或对新信息做出响应。
当 UI 中的内容发生更改时,提供程序将引发事件。 例如,如果选中或清除了复选框,则提供程序的切换模式实现将引发属性更改事件。 提供程序可以有选择地引发事件,具体取决于任何客户端是在侦听事件还是在侦听特定事件。
并非所有属性更改都会引发事件;这完全由元素的 UI 自动化提供程序实现所决定。 例如,列表框的标准代理提供程序在 SelectionProperty 更改时不会引发事件。 相反,在这种情况下,应用程序必须侦听 ElementSelectedEvent。
客户端通过订阅事件来侦听事件。 订阅事件是指创建可处理事件的委托方法,然后将方法随将在这些方法中处理的特定事件一起传递给 UI 自动化。 特别是对于属性更改事件,客户端必须实现 AutomationPropertyChangedEventHandler。