備註
本檔適用於想要使用 System.Windows.Automation 命名空間中定義的受控UI自動化類別的 .NET Framework 開發人員。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:使用者介面自動化。
本概觀介紹Microsoft用戶介面自動化控件模式。 控制項模式提供分類和公開控件功能的方式,與控件類型或控件的外觀無關。
使用者介面自動化會使用控件模式來代表常見的控件行為。 例如,針對可叫用的控件使用 [叫用控件] 模式(例如按鈕),以及具有滾動條之控件的 [捲動] 控件模式(例如清單框、清單檢視或下拉式方塊)。 因為每個控件模式都代表個別的功能,所以可以結合它們來描述特定控件所支援的完整功能集。
備註
綜合控制項由子控制項構建,這些子控制項為父控制項所暴露的功能提供使用者介面(UI)。綜合控制項應實作通常與每個子控制項相關聯的所有控制項模式。 因此,子控件不需要實現這些相同的控件模式。
UI 自動化控制模式元件
控制項模式支援定義控制件中可用之離散功能所需的方法、屬性、事件和關聯性。
UI 自動化元素與其父元素、子元素和同層級元素之間的關聯性描述了在UI自動化樹中的結構。
方法允許 UI 自動化用戶端操作控制項。
屬性和事件提供控制項模式功能的相關信息,以及控件狀態的相關信息。
控制件模式與UI相關,因為介面與元件物件模型 (COM) 對象相關。 在 COM 中,您可以查詢 對象來詢問它支援哪些介面,然後使用這些介面來存取功能。 在UI自動化中,使用者介面自動化用戶端可以詢問控件所支援的控件模式,然後透過所支援控件模式所公開的屬性、方法、事件和結構來與控件互動。 例如,針對多行編輯方塊,使用者介面自動化提供者會實作 IScrollProvider。 當用戶知道 AutomationElement 支援 ScrollPattern 控件模式時,它可以使用該控件模式所公開的屬性、方法和事件來操作控件,或存取控件的相關資訊。
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自動化控制件模式。 此表格也會列出使用者介面自動化用戶端用來存取控件模式的類別,以及 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 Explorer 等等)、多文檔介面 (MDI) 子視窗和對話框。 |