UI 自動化控制項模式概觀
注意事項 |
---|
這份文件適用於想要使用 System.Windows.Automation 命名空間中定義之 Managed UI Automation 類別的 .NET Framework 開發人員。如需 UI Automation 的最新資訊,請參閱 Windows Automation API:使用者介面自動化 (英文)。 |
本概觀簡介 Microsoft UI Automation控制項模式。 控制項模式可讓您分類及公開控制項的功能,而不受控制項型別或外觀所影響。
UI Automation使用控制項模式來代表一般控制項行為。 例如,您可以對可叫用的控制項 (例如按鈕) 使用 Invoke 控制項模式,對有捲軸的控制項 (例如清單方塊、清單檢視或下拉式方塊) 使用 Scroll 控制項模式。 因為每一個控制項模式都代表一個功能,所以可以結合在一起以說明特定控制項所支援的完整功能集合。
注意事項 |
---|
彙總控制項 (使用子控制項所建置,這些子控制項會提供user interface (UI) 做為父代所公開的功能) 應該實作與每個子控制項相關聯的所有控制項模式。接著,相同的控制項模式就不再需要由子控制項實作。 |
這個主題包含下列章節。
- UI 自動化控制項模式元件
- UI 自動化提供者與用戶端
- 動態控制項模式
- 控制項模式類別及介面
- 相關主題
UI 自動化控制項模式元件
定義控制項中可使用的獨立功能時所需的方法、屬性、事件及關聯性,控制項模式都提供支援。
UI 自動化項目及其父代、子系和同層級 (Sibling) 之間的關聯性,說明了項目在 UI Automation樹狀架構內的結構。
這些方法可以讓 UI 自動化用戶端管理控制項。
屬性及事件會提供有關控制項模式功能的資訊,以及控制項狀態的資訊。
控制項模式與 UI 關聯,就像介面與Component Object Model (COM) 物件的關聯。 在 COM 中,您可以查詢物件以詢問物件支援哪個介面,然後使用這些介面來存取功能。 在 UI Automation中,UI 自動化用戶端可以詢問控制項支援哪些控制項模式,然後再使用支援的控制項模式所公開的屬性、方法、事件及結構,與控制項互動。 例如,如果是多行編譯方塊,UI 自動化提供者 就會實作 IScrollProvider。 當用戶端知道 AutomationElement 支援 ScrollPattern 控制項模式時,就可以使用該控制項模式所公開的屬性、方法及事件,來管理控制項或存取控制項的資訊。
UI 自動化提供者與用戶端
UI 自動化提供者會實作控制項模式,以公開該控制項所支援特定功能的適當行為。
UI 自動化用戶端會存取 UI Automation控制項模式類別的方法及屬性,並使用這些方法及屬性來取得 UI 的資訊,或用來管理 UI。 這些控制項模式類別可以在 System.Windows.Automation 命名空間 (例如 InvokePattern 及 SelectionPattern) 中找到。
用戶端會使用 AutomationElement 方法 (例如 AutomationElement.GetCurrentPropertyValue 或 AutomationElement.GetCachedPropertyValue) 或 common language runtime (CLR) 存取子,以存取模式上的 UI Automation屬性。 每一個控制項模式類別都有一個欄位成員 (例如 InvokePattern.Pattern 或 SelectionPattern.Pattern) 會識別該控制項模式,而且可以當成參數傳遞給 GetCachedPattern 或 GetCurrentPattern,以擷取 AutomationElement 的這個模式。
動態控制項模式
有些控制項不會一直支援相同的控制項模式集合。 當 UI 自動化用戶端可以使用控制項模式時,就是支援該控制項模式。 例如,當多行編輯方塊內含的文字行超過可檢視區域中可顯示的行數時,才會啟用垂直捲動。 如果移除足夠的文字而不再需要捲動功能時,就會停用捲動。 在這個範例中,ScrollPattern 控制項模式會視控制項目前的狀態 (編輯方塊中的字數),採取動態支援。
控制項模式類別及介面
下表說明 UI Automation控制項模式。 表格中也列出 UI 自動化用戶端用來存取控制項模式的類別,以及 UI 自動化提供者用來實作類別的介面。
控制項模式類別 |
提供者介面 |
說明 |
---|---|---|
用於可停駐在停駐容器中的控制項。 例如工具列或工具板。 |
||
用於可展開或摺疊的控制項。 例如,應用程式中的功能表項,例如 [檔案] 功能表。 |
||
用於支援格線功能 (例如調整大小及移動至指定的儲存格) 的控制項。 例如,[Windows 檔案總管] 中的大圖示檢視,或是 Microsoft Word 中沒有標題的簡單表格。 |
||
用於格線中有儲存格的控制項。 個別儲存格應該支援 GridItem 模式。 例如,Microsoft Windows Explorer 詳細資料檢視中的每一個儲存格。 |
||
用於可以被叫用的控制項,例如,按鈕。 |
||
用於可以在相同資訊、資料或子系集合中,切換多種表示方式的控制項。 例如,清單檢視控制項,資料就在縮圖、並排、圖示、清單或詳細資料檢視中。 |
||
用於範圍值可以套用至控制項的控制項。 例如,內含年份之微調 (Spinner) 控制項的範圍可能是 1900 到 2010,而另一個代表月份的微調控制項的範圍值則是 1 至 12。 |
||
用於可捲動的控制項。 例如,具有捲軸,且當內含的資訊超出控制項可檢視區中可顯示的範圍時,捲軸成為作用中的控制項。 |
||
用於在可捲動的清單中內含個別項目的控制項。 例如,在捲動清單中 (例如,下拉式方塊控制項) 有個別項目的清單控制項。 |
||
用於選取容器控制項。 例如,清單方塊及下拉式方塊。 |
||
用於選取容器控制項 (例如清單方塊及下拉式方塊) 中的個別項目。 |
||
用於有格線以及標題資訊的控制項。 例如,Microsoft Excel 工作表。 |
||
用於表格中的項目。 |
||
用於公開文字資訊的編輯控制項及文件。 |
||
用於可切換狀態的控制項。 例如,核取方塊及可勾選的功能表項目。 |
||
用於可以調整大小、移動和旋轉的控制項。 Transform 控制項模式通常使用於設計工具、表單、圖形編輯器,以及繪圖應用程式。 |
||
允許用戶端對不支援範圍值的控制項,取得或設定一個值。 例如,日期時間選擇器。 |
||
公開視窗 (Microsoft Windows 作業系統的基本概念) 特定的資訊。 最上層應用程式視窗 (Microsoft Word、Microsoft Windows Explorer 等等)、multiple-document interface (MDI) 子視窗和對話方塊,都是一種視窗控制項。 |