UI 自動化控制項模式概觀
注意
本文件適用對象為 .NET Framework 開發人員,其想要使用 System.Windows.Automation 命名空間中定義的受控 UI 自動化類別。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:UI 自動化。
本概觀介紹 Microsoft UI 自動化控制項模式。 控制項模式提供一種方式,分類及公開與控制項類型或控制項外觀無關的控制項功能。
UI 自動化會使用控制項模式來代表通用控制項行為。 例如,您可以使用叫用控制項模式,用於可以叫用 (例如按鈕) 的控制項;也可以使用捲軸控制項模式,用於捲軸控制項 (例如清單方塊、清單檢視或下拉式方塊)。 因為每個控制項模式都代表個別的功能,所以可以結合起來,用以描述特定控制項所支援的完整功能集。
注意
彙總控制項是使用為父系所公開功能提供使用者介面 (UI) 的子控制項所建置,其應該實作通常會與每個子控制項相關聯的所有控制項模式。 然後相同的控制項模式便不需要由子控制項所實作。
使用者介面自動化控制項模式元件
控制項模式支援定義可在控制項中使用個別功能所需的方法、屬性、事件和關聯性。
使用者介面自動化項目和其父代、子系和同層級之間的關聯性描述 UI 自動化樹狀結構內的元素結構。
這些方法可以讓使用者介面自動化用戶端操作此控制項。
屬性和事件提供控制項模式功能以及控制項狀態的相關資訊。
控制項模式與 UI 相關,如同介面與元件物件模型 (COM) 相關一樣。 在 COM 中,您可以查詢物件以詢問支援哪個介面,然後使用這些介面來存取功能。 在 UI 自動化中,UI 自動化用戶端可以詢問控制項支援何種控制項模式,然後透過受支援控制項模式所公開的屬性、方法、事件和結構與其互動。 例如,對於多行編輯方塊,使用者介面自動化提供者可實作 IScrollProvider。 當用戶端知道 AutomationElement 支援 ScrollPattern 控制項模式時,它便可以使用該控制項模式所公開的屬性、方法和事件來操作控制項,或存取此控制項的相關資訊。
使用者介面自動化提供者和用戶端
使用者介面自動化提供者實作控制項模式來公開此控制項所支援特定功能的適當行為。
UI 自動化用戶端存取 UI 自動化控制模式類別的方法和屬性,並使用其來取得 UI 的相關資訊,或操作 UI。 這些控制項模式類別位於 System.Windows.Automation 命名空間 (例如 InvokePattern 和 SelectionPattern)。
用戶端會使用 AutomationElement 方法 (例如 AutomationElement.GetCurrentPropertyValue 或 AutomationElement.GetCachedPropertyValue) 或 Common Language Runtime (CLR) 存取子,來存取模式上的 UI 自動化屬性。 每個控制項模式類別都有一個欄位成員 (例如 InvokePattern.Pattern 或 SelectionPattern.Pattern),此欄位成員可識別該控制項模式,且可做為參數傳遞至 GetCachedPattern 或 GetCurrentPattern 來擷取 AutomationElement 的模式。
動態控制項模式
有些控制項不一定支援一組相同的控制項模式。 當控制項模式可用於使用者介面自動化用戶端時,就可視為受支援。 例如,只有當多行編輯方塊包含的文字超出可檢視區域內可顯示的行數時,才會啟用垂直捲動。 移除足夠的文字,因而不再需要捲動之後,捲動便會停用。 此範例中,ScrollPattern 控制項模式會根據控制項 (編輯方塊中有多少文字) 的目前狀態,受到動態支援。
控制項模式類別和介面
下表描述 UI 自動化控制項模式。 這個表格也列出使用者介面自動化用戶端用來存取控制模式的類別,以及使用者介面自動化提供者用來實作這些類別的介面。
控制項模式類別 | 提供者介面 | 描述 |
---|---|---|
DockPattern | IDockProvider | 用於可停駐在停駐容器中的控制項。 例如工具列或工具板。 |
ExpandCollapsePattern | IExpandCollapseProvider | 用於可展開或摺疊的控制項。 例如,應用程式中的功能表項目,像是 [檔案] 功能表。 |
GridPattern | IGridProvider | 用於支援格線功能 (例如調整大小及移動至指定的儲存格) 的控制項。 例如,Windows 檔案總管中的大圖示檢視,或是 Microsoft Word中沒有標題的簡單資料表。 |
GridItemPattern | IGridItemProvider | 用於格線中有儲存格的控制項。 個別儲存格應該支援 GridItem 模式。 例如,Microsoft Windows 檔案總管詳細資料檢視中的每個儲存格。 |
InvokePattern | IInvokeProvider | 用於可以叫用的控制項,例如按鈕。 |
MultipleViewPattern | IMultipleViewProvider | 用於可以在相同資訊、資料或子系的集合中,切換多種表示方式的控制項。 例如,清單檢視控制項,資料就在縮圖、並排顯示、圖示、清單或詳細資料檢視中。 |
RangeValuePattern | IRangeValueProvider | 用於範圍值可以套用至控制項的控制項。 例如,包含年份之微調控制項的範圍可能是 1900 到 2010,而另一個代表月份的微調控制項的範圍值則是 1 至 12。 |
ScrollPattern | IScrollProvider | 用於可捲動的控制項。 例如,具有捲軸,且當包含的資訊超出控制項可檢視區中可顯示的範圍時,捲軸即成為作用中的控制項。 |
ScrollItemPattern | IScrollItemProvider | 用於在可捲動的清單中具有個別項目的控制項。 例如,在捲動清單中 (例如下拉式方塊控制項) 有個別項目的清單控制項。 |
SelectionPattern | ISelectionProvider | 用於選取容器控制項。 例如清單方塊及下拉式方塊。 |
SelectionItemPattern | ISelectionItemProvider | 用於選取容器控制項 (例如清單方塊及下拉式方塊) 中的個別項目。 |
TablePattern | ITableProvider | 用於有格線以及標題資訊的控制項。 例如,Microsoft Excel 工作表。 |
TableItemPattern | ITableItemProvider | 用於表格中的項目。 |
TextPattern | ITextProvider | 用於公開文字資訊的編輯控制項及文件。 |
TogglePattern | IToggleProvider | 用於可切換狀態的控制項。 例如,核取方塊及可勾選的功能表項目。 |
TransformPattern | ITransformProvider | 用於可以調整大小、移動和旋轉的控制項。 轉換控制項模式通常使用於設計工具、表單、圖形編輯器,以及繪圖應用程式。 |
ValuePattern | IValueProvider | 允許用戶端對不支援範圍值的控制項,取得或設定一個值。 例如日期時間選擇器。 |
WindowPattern | IWindowProvider | 公開 Windows 專屬的資訊,這是 Microsoft Windows 作業系統的基本概念。 本身為視窗的控制項範例包括最上層應用程式視窗 (Microsoft Word、Microsoft Windows 檔案總管等)、多重文件介面 (MDI) 子視窗,以及對話方塊。 |