備註
本檔適用於想要使用 System.Windows.Automation 命名空間中定義的受控UI自動化類別的 .NET Framework 開發人員。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:使用者介面自動化。
本概觀介紹UI自動化用戶端的控制模式。 它包含使用者介面自動化用戶端如何使用控制項模式來存取使用者介面 (UI) 的相關信息。
控制項模式提供分類和公開控件功能的方式,與控件類型或控件的外觀無關。 使用者介面自動化用戶端可以檢查 AutomationElement ,以判斷支援哪些控制項模式,並保證控件的行為。
如需控件模式的完整清單,請參閱 UI自動化控件模式概觀。
取得控制樣式
用戶端會藉由呼叫 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
方法之外,還可以透過 Common Language Runtime (CLR) 存取子擷取屬性值,以存取模式上的 UI 自動化屬性。
具有變數模式的控制件
某些控制項類型會根據其狀態或控件的使用方式,支援不同的模式。 可以有變數模式的控制元件範例包括清單檢視(縮圖、圖格、圖示、清單、詳細資訊)、Microsoft Excel 圖表(餅圖、折線圖、條形圖、單元格與公式)、Microsoft Word 的文件區域(標準、Web 版面配置、大綱、列印版面配置、列印預覽),以及 Windows Media Player 的外觀。
實作自定義控件類型的控制項可以有一組代表其功能所需的控制項模式。