用戶端的 UI 自動化控制項模式
注意
本文件適用對象為 .NET Framework 開發人員,其想要使用 System.Windows.Automation 命名空間中定義的受控 UI 自動化類別。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:UI 自動化。
本概觀介紹使用者介面自動化用戶端的控制項模式。 內容包含使用者介面 (UI)自動化用戶端如何使用控制項模式來存取使用者介面 (UI) 的相關資訊。
控制項模式提供一種方式,分類及公開與控制項類型或控制項外觀無關的控制項功能。 使用者介面自動化用戶端可檢查 AutomationElement 來判斷支援哪些控制項模式,及保證控制項的行為。
如需控制項模式的完整清單,請參閱 UI Automation Control Patterns Overview。
取得控制項模式
用戶端藉由呼叫 AutomationElement 或 AutomationElement.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.GetCachedPropertyValue 或 AutomationElement.GetCurrentPropertyValue ,並將物件轉型成傳回適當的類型,藉此在控制項模式上擷取屬性值。 如需 UI 自動化屬性的詳細資訊,請參閱用戶端的 UI 自動化屬性。
除了 GetPropertyValue
方法之外,還可以透過通用語言執行平台 (CLR) 存取子擷取屬性值,以存取某個模式的 UI 自動化屬性。
包含變數模式的控制項
某些控制項類型支援不同的模式,視其狀態或使用控制項的方式而定。 舉例來說,可以有變數模式的控制項包括了:清單檢視 (縮圖、圖格、圖示、清單、詳細資料)、Microsoft Excel 圖表 (圓形圖、折線圖、長條圖、具有公式的儲存格值)、Microsoft Word 的文件區域 (一般、Web 版面配置、大綱、列印版面配置、預覽列印),以及 Microsoft Windows Media Player 面板。
實作自訂控制項類型的控制項可以有任何控制項模式組合,它們是代表其功能所需的組合。