共用方式為


UI 自動化控制項模式概觀

備註

本檔適用於想要使用 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 (例如 InvokePatternSelectionPattern)。

用戶端會使用 AutomationElement 方法 (例如 AutomationElement.GetCurrentPropertyValueAutomationElement.GetCachedPropertyValue) 或 Common Language Runtime (CLR) 存取子來存取模式上的 UI 自動化屬性。 每個控制模式類別都有一個欄位成員(例如 InvokePattern.PatternSelectionPattern.Pattern),可用於識別該控制模式,並且可以作為參數傳遞給 GetCachedPatternGetCurrentPattern,以便為 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) 子視窗和對話框。

另請參閱