備註
本檔適用於想要使用 System.Windows.Automation 命名空間中定義的受控UI自動化類別的 .NET Framework 開發人員。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:使用者介面自動化。
Microsoft UI 自動化是Microsoft Windows 的新輔助功能架構,可在支援 Windows Presentation Foundation (WPF) 的所有作系統上使用。
使用者介面自動化可讓您以程式化存取方式存取桌面上的大部分使用者介面(UI)元素,並使螢幕助讀程式等輔助科技產品能夠提供有關 UI 的資訊給使用者,以及透過非標準輸入方式來操控 UI。 使用者介面自動化也允許自動化測試腳本與UI互動。
備註
使用者介面自動化無法透過 以不同身分執行 命令,啟用由不同使用者啟動的進程之間的通訊。
使用者介面自動化用戶端應用程式可以撰寫,並保證它們可在多個架構上運作。 UI 自動化核心會遮罩架構中各種UI片段之間的差異。 例如, Content
WPF 按鈕的 屬性、 Caption
Win32 按鈕的 屬性,以及 ALT
HTML 影像的 屬性都會對應至 UI 自動化檢視中的單一屬性 Name。
UI 自動化在支援的執行 .NET Framework 的 Windows 作業系統上提供完整功能(請參閱 NET Framework 系統需求)或從 .NET Core 3.0 開始的 .NET Core 版本。
使用者介面自動化提供者透過內建橋接服務,為Microsoft Active Accessibility 用戶端應用程式提供一些支援。
提供者和用戶端
UI 自動化有四個主要元件,如下表所示。
元件 | 說明 |
---|---|
提供者 API (UIAutomationProvider.dll 和 UIAutomationTypes.dll) | 由UI自動化提供者實作的一組介面定義、提供UI元素相關信息的物件,以及回應程式設計輸入的物件。 |
用戶端 API (UIAutomationClient.dll 與 UIAutomationTypes.dll) | Managed 程式代碼的一組類型,可讓 UI 自動化用戶端應用程式取得 UI 的相關信息,並將輸入傳送至控制項。 |
UiAutomationCore.dll | 處理提供者與客戶端之間通訊的基礎程式代碼(有時稱為UI自動化核心)。 |
UIAutomationClientsideProviders.dll | 用於標準舊版控制項的一套UI自動化供應者。 (WPF 控制件具有UI自動化的原生支援。用戶端應用程式會自動提供這項支援。 |
從軟體開發人員的觀點來看,使用UI自動化有兩種方式:建立自定義控件的支援(使用提供者 API),以及建立使用UI自動化核心的應用程式來與UI元素通訊(使用用戶端 API)。 根據您的專注點,您應該參考文件的不同部分。 您可以在下列各節中深入瞭解概念,並取得實用的作說明知識。
章節 | 主題 | 觀眾 |
---|---|---|
使用者介面自動化基本概念 (本節) | 概念的廣泛概觀。 | 全部。 |
適用於受控代碼的 UI自動化提供者 | 概觀和作說明主題,可協助您使用提供者 API。 | 控制系統開發人員。 |
適用於受控代碼的 UI自動化用戶端 | 概述和操作指南主題,可協助您使用用戶端 API。 | 用戶端應用程式開發人員。 |
UI 自動化控制圖樣 | 提供者應如何實作控件模式,以及用戶端可以使用哪些功能的相關信息。 | 全部。 |
UI 自動化文字模式 | 提供者應如何實作文字控件模式,以及用戶端可使用哪些功能的相關信息。 | 全部。 |
UI 自動化控制項類型 | 不同控制項類型所支援之屬性和控制項模式的相關信息。 | 全部。 |
下表列出UI自動化命名空間、包含它們的 DLL,以及使用這些命名空間的物件。
Namespace | 被引用的 DLL | 觀眾 |
---|---|---|
System.Windows.Automation | UIAutomationClientUIAutomationTypes | 使用者介面自動化客戶端開發人員,用來尋找 AutomationElement 物件、註冊使用者介面自動化事件,以及運用使用者介面自動化控制模式。 |
System.Windows.Automation.Provider | UIAutomationProviderUIAutomationTypes | WPF 以外架構的UI自動化提供者開發人員。 |
System.Windows.Automation.Text | UIAutomationClientUIAutomationTypes | WPF 以外架構的UI自動化提供者開發人員;用來實作 TextPattern 控制項模式。 |
System.Windows.Automation.Peers | PresentationFramework | WPF 的UI自動化提供者開發人員。 |
UI 自動化模型
使用者介面自動化會將每個 UI 片段公開給用戶端應用程式作為 AutomationElement。 元素包含在樹狀結構中,桌面作為根元素。 用戶端可以將樹狀結構的原始檢視篩選為控件檢視或內容檢視。 應用程式也可以建立自定義檢視。
AutomationElement 對象會公開它們所代表之UI元素的通用屬性。 其中一個屬性是控件類型,它會將其基本外觀和功能定義為單一可辨識實體:例如,按鈕或複選框。
此外,元素會公開控件模式,以提供其控件類型特有的屬性。 控件模式也會公開方法,讓客戶端能夠取得元素的進一步資訊,並提供輸入。
備註
控制件類型和控制項模式之間沒有一對一的對應。 控制項模式可由多個控件類型支援,而控件可能支援多個控制項模式,每個模式都會公開其行為的不同層面。 例如,組合框至少有兩個控制模式:一個代表其展開和折疊的能力,另一個代表選取機制。 如需詳細資訊,請參閱 UI自動化控制件類型。
使用者介面自動化也會透過事件將資訊提供給用戶端應用程式。 不同於 WinEvents,UI 自動化事件並非以廣播機制為基礎。 使用者介面自動化客戶端會註冊特定事件通知,並可要求特定 UI 自動化屬性和控制模式資訊傳遞至其事件處理程式。 此外,UI 自動化事件中包含對引發該事件之元素的參考。 為了改善效能,提供者可以根據是否有任何用戶端正在接聽來選擇性地引發事件。