共用方式為


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 命名空間 (例如 InvokePatternSelectionPattern) 中找到。

用戶端會使用 AutomationElement 方法 (例如 AutomationElement.GetCurrentPropertyValueAutomationElement.GetCachedPropertyValue) 或 common language runtime (CLR) 存取子,以存取模式上的 UI Automation屬性。 每一個控制項模式類別都有一個欄位成員 (例如 InvokePattern.Pattern 或 SelectionPattern.Pattern) 會識別該控制項模式,而且可以當成參數傳遞給 GetCachedPatternGetCurrentPattern,以擷取 AutomationElement 的這個模式。

動態控制項模式

有些控制項不會一直支援相同的控制項模式集合。 當 UI 自動化用戶端可以使用控制項模式時,就是支援該控制項模式。 例如,當多行編輯方塊內含的文字行超過可檢視區域中可顯示的行數時,才會啟用垂直捲動。 如果移除足夠的文字而不再需要捲動功能時,就會停用捲動。 在這個範例中,ScrollPattern 控制項模式會視控制項目前的狀態 (編輯方塊中的字數),採取動態支援。

控制項模式類別及介面

下表說明 UI Automation控制項模式。 表格中也列出 UI 自動化用戶端用來存取控制項模式的類別,以及 UI 自動化提供者用來實作類別的介面。

控制項模式類別

提供者介面

說明

DockPattern

IDockProvider

用於可停駐在停駐容器中的控制項。 例如工具列或工具板。

ExpandCollapsePattern

IExpandCollapseProvider

用於可展開或摺疊的控制項。 例如,應用程式中的功能表項,例如 [檔案] 功能表。

GridPattern

IGridProvider

用於支援格線功能 (例如調整大小及移動至指定的儲存格) 的控制項。 例如,[Windows 檔案總管] 中的大圖示檢視,或是 Microsoft Word 中沒有標題的簡單表格。

GridItemPattern

IGridItemProvider

用於格線中有儲存格的控制項。 個別儲存格應該支援 GridItem 模式。 例如,Microsoft Windows Explorer 詳細資料檢視中的每一個儲存格。

InvokePattern

IInvokeProvider

用於可以被叫用的控制項,例如,按鈕。

MultipleViewPattern

IMultipleViewProvider

用於可以在相同資訊、資料或子系集合中,切換多種表示方式的控制項。 例如,清單檢視控制項,資料就在縮圖、並排、圖示、清單或詳細資料檢視中。

RangeValuePattern

IRangeValueProvider

用於範圍值可以套用至控制項的控制項。 例如,內含年份之微調 (Spinner) 控制項的範圍可能是 1900 到 2010,而另一個代表月份的微調控制項的範圍值則是 1 至 12。

ScrollPattern

IScrollProvider

用於可捲動的控制項。 例如,具有捲軸,且當內含的資訊超出控制項可檢視區中可顯示的範圍時,捲軸成為作用中的控制項。

ScrollItemPattern

IScrollItemProvider

用於在可捲動的清單中內含個別項目的控制項。 例如,在捲動清單中 (例如,下拉式方塊控制項) 有個別項目的清單控制項。

SelectionPattern

ISelectionProvider

用於選取容器控制項。 例如,清單方塊及下拉式方塊。

SelectionItemPattern

ISelectionItemProvider

用於選取容器控制項 (例如清單方塊及下拉式方塊) 中的個別項目。

TablePattern

ITableProvider

用於有格線以及標題資訊的控制項。 例如,Microsoft Excel 工作表。

TableItemPattern

ITableItemProvider

用於表格中的項目。

TextPattern

ITextProvider

用於公開文字資訊的編輯控制項及文件。

TogglePattern

IToggleProvider

用於可切換狀態的控制項。 例如,核取方塊及可勾選的功能表項目。

TransformPattern

ITransformProvider

用於可以調整大小、移動和旋轉的控制項。 Transform 控制項模式通常使用於設計工具、表單、圖形編輯器,以及繪圖應用程式。

ValuePattern

IValueProvider

允許用戶端對不支援範圍值的控制項,取得或設定一個值。 例如,日期時間選擇器。

WindowPattern

IWindowProvider

公開視窗 (Microsoft Windows 作業系統的基本概念) 特定的資訊。 最上層應用程式視窗 (Microsoft Word、Microsoft Windows Explorer 等等)、multiple-document interface (MDI) 子視窗和對話方塊,都是一種視窗控制項。

請參閱

概念

用戶端的 UI 自動化控制項模式

UI 自動化用戶端的控制項模式對應

UI 自動化概觀

用戶端的 UI 自動化屬性

用戶端的 UI 自動化事件