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 |
依類別列出屬性
下表將在 AutomationElement 和 AutomationElementIdentifiers 中找到其 ID 的屬性進行分類。 所有控制項都有這些屬性。 大部分動態屬性都與控制項模式相關,除了少數幾個在提供者應用程式的存留期可能是靜態的。
[屬性存取] 資料行中,除了 GetCurrentPropertyValue 及 GetCachedPropertyValue以外,還列出每個屬性的任何其他存取子。 如需取得用戶端應用程式屬性的詳細資訊,請參閱 UI Automation Properties for Clients。
注意
如需每一個屬性的特定資訊,請按一下 [屬性存取] 資料行中的連結。
顯示特性
屬性識別項 | 屬性存取 |
---|---|
BoundingRectangleProperty | BoundingRectangle |
CultureProperty | n/a |
HelpTextProperty | HelpText |
IsOffscreenProperty | IsOffscreen |
OrientationProperty | Orientation |
項目類型
識別
互動
模式支援
其他
屬性識別項 | 屬性存取 |
---|---|
IsRequiredForFormProperty | IsRequiredForForm |
IsPasswordProperty | IsPassword |
ItemStatusProperty | ItemStatus |
當地語系化
UI 自動化提供者應該以作業系統的語言來呈現下列屬性:
屬性和事件
屬性變更事件的概念是要與 UI 自動化做緊密的繫結。 如果是動態屬性,用戶端應用程式需要一個知道屬性值已變更的方法,以更新快取的資訊或根據新資料做出回應。
當 UI 中的某個項目變更時,提供者會引發事件。 例如,如果選取或清除核取方塊,提供者的切換模式實作就會引發屬性變更事件。 提供者可以視任何用戶端是否正在接聽事件或接聽特定事件,以選擇性地引發事件。
並非所有屬性變更都會引發事件,這完全由項目的使用者介面自動化提供者實作所決定。 例如,當 SelectionProperty 變更時,清單方塊的標準 Proxy 提供者就不會引發事件。 此時,應用程式就必須接聽 ElementSelectedEvent。
用戶端可以透過訂閱事件的方式以接聽事件。 訂閱事件就是建立可處理事件的委派方法,然後將方法以及會和這些方法一起處理的特定事件一起傳送至 UI 自動化。 特別是針對屬性變更事件,用戶端必須實作 AutomationPropertyChangedEventHandler。