UI 自動化屬性概觀

注意

本文件適用對象為 .NET Framework 開發人員,其想要使用 System.Windows.Automation 命名空間中定義的受控 UI 自動化類別。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:UI 自動化

UI 自動化提供者會公開 Microsoft UI 自動化元素上的屬性。 這些屬性可讓 UI 自動化用戶端應用程式探索使用者介面 (UI) 片段 (特別是控制項) 的相關資訊,包括靜態和動態資料。

本節提供 Microsoft UI 自動化屬性的廣泛概觀。 下列各主題提供更詳細的資訊:

屬性識別項

每一個屬性都是由一個編號及名稱所識別。 屬性名稱僅用於偵錯及診斷作業。 提供者會使用數值 ID 來識別傳入的屬性要求。 但是,用戶端應用程式只使用 AutomationProperty(會封裝編號及名稱) 以識別它們要擷取的屬性。

AutomationProperty 物件代表特定屬性,其在許多類別中可做為欄位使用。 基於安全性考量,使用者介面自動化提供者會從 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

依類別列出屬性

下表將在 AutomationElementAutomationElementIdentifiers 中找到其 ID 的屬性進行分類。 所有控制項都有這些屬性。 大部分動態屬性都與控制項模式相關,除了少數幾個在提供者應用程式的存留期可能是靜態的。

[屬性存取] 資料行中,除了 GetCurrentPropertyValueGetCachedPropertyValue以外,還列出每個屬性的任何其他存取子。 如需取得用戶端應用程式屬性的詳細資訊,請參閱 UI Automation Properties for Clients

注意

如需每一個屬性的特定資訊,請按一下 [屬性存取] 資料行中的連結。

顯示特性

屬性識別項 屬性存取
BoundingRectangleProperty BoundingRectangle
CultureProperty n/a
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 自動化提供者應該以作業系統的語言來呈現下列屬性:

屬性和事件

屬性變更事件的概念是要與 UI 自動化做緊密的繫結。 如果是動態屬性,用戶端應用程式需要一個知道屬性值已變更的方法,以更新快取的資訊或根據新資料做出回應。

當 UI 中的某個項目變更時,提供者會引發事件。 例如,如果選取或清除核取方塊,提供者的切換模式實作就會引發屬性變更事件。 提供者可以視任何用戶端是否正在接聽事件或接聽特定事件,以選擇性地引發事件。

並非所有屬性變更都會引發事件,這完全由項目的使用者介面自動化提供者實作所決定。 例如,當 SelectionProperty 變更時,清單方塊的標準 Proxy 提供者就不會引發事件。 此時,應用程式就必須接聽 ElementSelectedEvent

用戶端可以透過訂閱事件的方式以接聽事件。 訂閱事件就是建立可處理事件的委派方法,然後將方法以及會和這些方法一起處理的特定事件一起傳送至 UI 自動化。 特別是針對屬性變更事件,用戶端必須實作 AutomationPropertyChangedEventHandler

另請參閱