共用方式為


UI 自動化屬性概觀

Microsoft 使用者介面自動化提供者會在 使用者介面自動化 元素上公開屬性。 屬性可讓用戶端應用程式擷取控件的相關信息。

使用者介面自動化 公開兩種不同的屬性:automation 元素屬性,以及控件模式屬性。 自動化元素屬性是由一組常見的屬性所組成,例如 Name、AcceleratorKey 和 ClassName,不論控件類型為何,都會由所有 使用者介面自動化 項目公開。 大部分的自動化項目屬性都是靜態值。

控制項模式屬性是由支援特定控制項模式的控制項公開的屬性。 每個控制項模式都有一組對應的控制項模式屬性,控件必須公開。 例如,支援 Grid 控制件模式的控制件會公開 ColumnCount 和 RowCount 屬性。 大部分的控件模式屬性都是動態值。

本主題包含下列各節。

屬性識別項

每個屬性都是由稱為屬性識別碼 (ID) 的 PROPERTYID數值來識別。 提供者和用戶端會在方法呼叫中使用數值標識符,例如IRawElementProviderAdviseEvents::AdviseEventAdded IUIAutomationElement::GetCachedPropertyValue 來識別屬性要求。 如需每個 使用者介面自動化 屬性識別碼的詳細描述,包括每個屬性的數據類型和預設值,請參閱屬性標識碼

屬性值

所有屬性都是只讀的,雖然有些屬性可以使用在控件上採取行動的方法進行變更,例如 IDockProvider::SetDockPosition (provider) 或 IUIAutomationDockPattern::SetDockPosition (client)。

如需擷取屬性值的相關信息,請參閱從 使用者介面自動化 Elements 擷取屬性。

屬性和事件

與 使用者介面自動化 中屬性密切相關的是屬性變更事件的概念。 針對動態屬性,用戶端應用程式需要知道屬性值已變更的方法,以便更新其資訊快取,或以其他方式回應新資訊。 用戶端可以註冊以接聽任何屬性上的屬性變更事件。

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

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

用戶端藉由訂閱事件來接聽事件,如訂閱 使用者介面自動化 事件中所述。 特別是屬性變更事件,客戶端必須實作 IUIAutomationPropertyChangedEventHandler,並將介面傳遞至 IUIAutomation::AddPropertyChangedEventHandler 或 IUIAutomation::AddPropertyChangedEventHandlerNativeArray。

參考

GetCurrentPropertyValue

GetCurrentPropertyValueEx

GetCachedPropertyValue

GetCachedPropertyValueEx

概念

UI 自動化控制項模式概觀

UI 自動化控制項類型概觀

UI 自動化事件概觀