用戶端的 UI 自動化控制項模式

注意

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

本概觀介紹使用者介面自動化用戶端的控制項模式。 內容包含使用者介面 (UI)自動化用戶端如何使用控制項模式來存取使用者介面 (UI) 的相關資訊。

控制項模式提供一種方式,分類及公開與控制項類型或控制項外觀無關的控制項功能。 使用者介面自動化用戶端可檢查 AutomationElement 來判斷支援哪些控制項模式,及保證控制項的行為。

如需控制項模式的完整清單,請參閱 UI Automation Control Patterns Overview

取得控制項模式

用戶端藉由呼叫 AutomationElementAutomationElement.GetCachedPattern ,從 AutomationElement.GetCurrentPattern擷取控制項模式。

用戶端可以使用 GetSupportedPatterns 方法或個別的 IsPatternAvailable 屬性 (例如, IsTextPatternAvailableProperty) 來判斷 AutomationElement上是否支援模式或模式群組。 不過,嘗試取得控制項模式和針對 null 參考進行測試,比檢查支援的屬性並擷取控制項模式更有效率,因為它會造成較少的跨處理序呼叫。

下列範例示範如何從 TextPattern 取得 AutomationElement控制項模式。

// Specify the control type we're looking for, in this case 'Document'
PropertyCondition cond = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document);

// target --> The root AutomationElement.
AutomationElement textProvider = target.FindFirst(TreeScope.Descendants, cond);

targetTextPattern = textProvider.GetCurrentPattern(TextPattern.Pattern) as TextPattern;

if (targetTextPattern == null)
{
    Console.WriteLine("Root element does not contain a descendant that supports TextPattern.");
    return;
}

在控制項模式上擷取屬性

用戶端可藉由呼叫 AutomationElement.GetCachedPropertyValueAutomationElement.GetCurrentPropertyValue ,並將物件轉型成傳回適當的類型,藉此在控制項模式上擷取屬性值。 如需 UI 自動化屬性的詳細資訊,請參閱用戶端的 UI 自動化屬性

除了 GetPropertyValue 方法之外,還可以透過通用語言執行平台 (CLR) 存取子擷取屬性值,以存取某個模式的 UI 自動化屬性。

包含變數模式的控制項

某些控制項類型支援不同的模式,視其狀態或使用控制項的方式而定。 舉例來說,可以有變數模式的控制項包括了:清單檢視 (縮圖、圖格、圖示、清單、詳細資料)、Microsoft Excel 圖表 (圓形圖、折線圖、長條圖、具有公式的儲存格值)、Microsoft Word 的文件區域 (一般、Web 版面配置、大綱、列印版面配置、預覽列印),以及 Microsoft Windows Media Player 面板。

實作自訂控制項類型的控制項可以有任何控制項模式組合,它們是代表其功能所需的組合。

另請參閱