共用方式為


UI 自動化屬性概觀

備註

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

使用者介面自動化提供者會在MICROSOFT UI 自動化元素上公開屬性。 這些屬性可讓UI自動化用戶端應用程式探索使用者介面 (UI) 部分的相關信息,特別是控制件,包括靜態和動態數據。

本節提供Microsoft用戶介面自動化屬性的廣泛概觀。 下列主題提供更具體的資訊:

屬性識別項

每個屬性都會以編號和名稱來識別。 屬性的名稱僅用於偵錯和診斷。 服務提供者會使用數值標識碼來識別傳入的資產請求。 不過,用戶端應用程式只會使用 AutomationProperty,其中包含數字和名稱,以識別想擷取的屬性。

AutomationProperty 代表特定屬性的物件可作為各種類別中的欄位使用。 基於安全性考慮,使用者介面自動化提供者會從包含在 Uiautomationtypes.dll的個別類別集中取得這些物件。

下表依包含 AutomationProperty標識碼的類別分類屬性。

屬性種類 客戶端會從某處取得標識碼 提供者從某處取得標識碼
所有元素通用的屬性(請參閱下表) 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中找到。 這些屬性適用於所有控制件。 除了其中一些變數,在提供者應用程式的存留期內可能都是靜態的;大部分的動態屬性都與控件模式相關聯。

除了GetCurrentPropertyValue之外,GetCachedPropertyValue資料行還會列出每個屬性的其他任何存取子。 如需在用戶端應用程式中取得屬性的詳細資訊,請參閱 用戶端的UI自動化屬性

備註

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

顯示特性

屬性標識碼 屬性存取
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 中的某個項目變更時,提供者會引發事件。 例如,如果選取或清除複選框,提供者的 Toggle 模式實作就會引發屬性變更事件。 提供者可以根據任何用戶端是否監聽事件或監聽特定事件來選擇性地引發事件。

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

客戶端透過訂閱來監聽事件。 訂閱事件意味著建立委派方法來處理事件,然後將這些方法連同要處理的特定事件一起傳遞給使用者介面自動化。 對於屬性變更事件,用戶端必須實作 AutomationPropertyChangedEventHandler

另請參閱