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

所有元素共有的属性(请参见下表)

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

按类别列出的属性

下表对其 IDs 位于 AutomationElementAutomationElementIdentifiers 中的属性进行分类。 这些属性是所有控件共有的。 很少一些属性在提供程序应用程序的生存期内可能是静态的;大多数动态属性都与控件模式关联。

**“属性访问”**列列出了每个属性除 GetCurrentPropertyValueGetCachedPropertyValue 之外的任何其他访问器。 有关在客户端应用程序中获取属性的更多信息,请参见客户端的 UI 自动化属性

注意注意

有关每个属性的具体信息,请访问“属性访问”列中的链接。

显示特性

属性标识符

属性访问

BoundingRectangleProperty

BoundingRectangle

CultureProperty

HelpTextProperty

HelpText

IsOffscreenProperty

IsOffscreen

OrientationProperty

Orientation

元素类型

属性标识符

属性访问

ControlTypeProperty

ControlType

IsContentElementProperty

IsContentElement

IsControlElementProperty

IsControlElement

ItemTypeProperty

ItemType

LocalizedControlTypeProperty

LocalizedControlType

标识

属性标识符

属性访问

AutomationIdProperty

AutomationId

ClassNameProperty

ClassName

FrameworkIdProperty

FrameworkId

LabeledByProperty

LabeledBy

NameProperty

Name

ProcessIdProperty

ProcessId

RuntimeIdProperty

GetRuntimeId

NativeWindowHandleProperty

NativeWindowHandle

交互

属性标识符

属性访问

AcceleratorKeyProperty

AcceleratorKey

AccessKeyProperty

AccessKey

ClickablePointProperty

GetClickablePoint

HasKeyboardFocusProperty

HasKeyboardFocus

IsEnabledProperty

IsEnabled

IsKeyboardFocusableProperty

IsKeyboardFocusable

对模式的支持

属性标识符

属性访问

IsDockPatternAvailableProperty

GetSupportedPatterns

IsExpandCollapsePatternAvailableProperty

GetSupportedPatterns

IsGridItemPatternAvailableProperty

GetSupportedPatterns

IsGridPatternAvailableProperty

GetSupportedPatterns

IsInvokePatternAvailableProperty

GetSupportedPatterns

IsMultipleViewPatternAvailableProperty

GetSupportedPatterns

IsRangeValuePatternAvailableProperty

GetSupportedPatterns

IsScrollItemPatternAvailableProperty

GetSupportedPatterns

IsScrollPatternAvailableProperty

GetSupportedPatterns

IsSelectionItemPatternAvailableProperty

GetSupportedPatterns

IsSelectionPatternAvailableProperty

GetSupportedPatterns

IsTableItemPatternAvailableProperty

GetSupportedPatterns

IsTablePatternAvailableProperty

GetSupportedPatterns

IsTextPatternAvailableProperty

GetSupportedPatterns

IsTogglePatternAvailableProperty

GetSupportedPatterns

IsTransformPatternAvailableProperty

GetSupportedPatterns

IsValuePatternAvailableProperty

GetSupportedPatterns

IsWindowPatternAvailableProperty

GetSupportedPatterns

杂项

属性标识符

属性访问

IsRequiredForFormProperty

IsRequiredForForm

IsPasswordProperty

IsPassword

ItemStatusProperty

ItemStatus

本地化

UI Automation提供程序应按照操作系统的语言呈现下列属性:

属性和事件

property-changed 事件的概念与 UI Automation中的属性息息相关。 对于动态属性,客户端应用程序需要一种途径来了解属性值已更改,以便它能够用某种其他方式更新信息缓存或对新信息做出响应。

当 UI 中的内容发生更改时,提供程序将引发事件。 例如,如果选中或清除了复选框,则提供程序的切换模式实现将引发 property-changed 事件。 提供程序可以有选择地引发事件,具体情况取决于任何客户端是在侦听事件还是在侦听特定事件。

并非所有属性更改都会引发事件;这完全由元素的 UI 自动化提供程序实现所决定。 例如,列表框的标准代理提供程序在 SelectionProperty 更改时不会引发事件。 相反,在这种情况下,应用程序必须侦听 ElementSelectedEvent

客户端通过订阅事件来侦听事件。 订阅事件是指创建可处理事件的委托方法,然后将方法随将在这些方法中处理的特定事件一起传递给 UI Automation。 特别是对于 property-changed 事件而言,客户端必须实现 AutomationPropertyChangedEventHandler

请参见

任务

基于属性条件查找 UI 自动化元素

从 UI 自动化提供程序返回属性

从 UI 自动化提供程序中引发事件

概念

在 UI 自动化客户端中缓存

客户端的 UI 自动化属性

服务器端 UI 自动化提供程序的实现