共用方式為


UI 自動化控制項模式概觀

控件模式 是一種介面實作,揭露控件功能的特定層面給 Microsoft UI 自動化的用戶端應用程式。 客戶使用透過控制項模式公開的屬性和方法,擷取控制項特定功能的資訊,或操作控制項行為的特定層面。 例如,呈現表格式介面的控制項會使用 Grid 控制項模式來公開表中的行和列的數目,以及讓用戶端從表中擷取項目。

使用者介面自動化會使用控件模式來代表常見的控件行為。 例如,您可以針對可叫用的控件使用 叫用 控件模式,例如按鈕;而針對具有滾動條的控件,例如清單框、清單檢視或下拉式方塊,則使用 捲動 控件模式。 因為每個控件模式都代表個別的功能,因此可以結合控件模式來描述特定控件所支援的完整功能集。

注意

一個聚合控件是由子控件構建而成,這些子控件為父控件所公開的功能提供使用者介面,而父控件應該實作通常與其子控件相關聯的所有控件模式。 因此,子控件不需要實現這些相同的控件模式。

 

本主題包含下列各節:

UI 自動化控制模式元件

控制項模式支援定義控制件中可用之離散功能所需的方法、屬性、事件和關聯性。

  • 方法允許 UI 自動化用戶端操作控制項。
  • 屬性和事件提供控制項功能和狀態的相關信息。
  • UI 自動化元素與其父元素、子元素和同級元素之間的關聯性描述 UI 自動化樹狀結構。

控制項模式與控制件類似介面與元件物件模型 (COM) 對象的關聯方式。 在 COM 中,您可以查詢對象來詢問其支援的介面,然後使用這些介面來存取功能。 在UI自動化中,用戶端可以詢問控制件支援哪些控制項模式,然後透過所支援控件模式所公開的屬性、方法、事件和結構來與控件互動。

在提供者和用戶端中控制模式

UI 自動化提供者會實作控件模式介面,以公開控件所支援之特定功能的適當行為。 這些介面不會直接公開給用戶端,但由UI自動化核心用來實作另一組用戶端介面。 例如,提供者透過 IScrollProvider向 UI 自動化公開捲動功能,而 UI 自動化會透過 IUIAutomationScrollPattern向客戶端公開此功能。

動態控制項模式

某些控制件不一定支援相同的控制項模式集。 例如,只有當多行編輯控制項中的文字行數超過其可視區域時,才會啟用垂直捲動。 當刪除足夠的文字後,捲動功能會被停用,因此不再需要捲動。 在此範例中,IUIAutomationScrollPattern 會動態支援,視編輯方塊中的文字數目而定。

下表描述UI自動化控制件模式。 數據表也會列出用來實作控件模式的提供者介面,以及用來存取這些模式的用戶端介面。

名字 提供者介面 用戶端介面 描述
註釋 IAnnotationProvider IUIAutomationAnnotationPattern 用來揭露文件中註釋的屬性,例如連接至文件文字的頁邊批註。
停靠 IDockProvider IUIAutomationDockPattern 用於可停駐在停駐容器中的控制項,例如工具列或工具面板。
拖曳 IDragProvider IUIAutomationDragPattern 用來支援可拖曳的控制項,或具有可拖曳項目的控制項。
DropTarget IDropTargetProvider IUIAutomationDropTargetPattern 用來支援可做為拖放作業目標的控制項。
展開或收合 IExpandCollapseProvider IUIAutomationExpandCollapsePattern 用於可以展開或折疊的控件,例如應用程式中的功能表項,例如 [檔案] 選單。
方格 IGridProvider IUIAutomationGridPattern 用於支援網格功能的控件,例如調整大小和移動至指定的儲存格,例如在 Windows 檔案總管中的大型圖示檢視或在 Microsoft Office Word 中的簡單表格。
GridItem IGridItemProvider IUIAutomationGridItemPattern 用於網格線中具有單元格的控件。 個別儲存格應該支援 GridItem 模式,例如 Windows 檔案總管詳細數據檢視中的每個儲存格。
叫用 IInvokeProvider IUIAutomationInvokePattern 用於可以啟動的控制項,例如按鈕。
項目容器 IItemContainerProvider IUIAutomationItemContainerPattern 用於可包含其他項目的控制元件。
LegacyIAccessible ILegacyIAccessibleProvider IUIAutomationLegacyIAccessiblePattern 用來向使用者介面自動化客戶端公開Microsoft Active Accessibility 屬性和方法。
多重視圖 IMultipleViewProvider IUIAutomationMultipleViewPattern 用於可以在相同的資訊、數據或子系集的多個表示方法之間切換的控件,例如,清單檢視控件可以將數據顯示為縮圖、磚塊、圖示、清單或詳細數據檢視。
ObjectModel IObjectModelProvider IUIAutomationObjectModelPattern 用來揭露檔案之基礎物件模型的指標。 此控制項模式可讓用戶端從UI自動化元素巡覽至基礎物件模型。
範圍值 IRangeValueProvider IUIAutomationRangeValuePattern 用於具有值範圍的控件。 例如,顯示年份的微調器控件的範圍可能是 1900- 2010,而顯示月份的微調控件的範圍可能是 1-12。
卷動 IScrollProvider IUIAutomationScrollPattern 用於當控件的可視區域無法容納更多資訊時可進行捲動的控件。
ScrollItem IScrollItemProvider IUIAutomationScrollItemPattern 用於擁有獨立項目的滾動列表控件,例如下拉式方塊控件中的列表控件。
選取範圍 ISelectionProvider IUIAutomationSelectionPattern 用於選取容器控件,例如清單框和下拉式方塊。
選擇項目 ISelectionItemProvider IUIAutomationSelectionItemPattern 適用於選擇容器控件中的單個項目,例如列表框和組合框。
試算表 ISpreadsheetProvider IUIAutomationSpreadsheetPattern 用來公開電子錶格或其他以方格為基礎的文件的內容。 實作電子表格控件模式的控件也應該實作 Grid 控件模式。
試算表項目 ISpreadsheetItemProvider IUIAutomationSpreadsheetItemPattern 用來公開電子表格或其他以方格為基礎的檔中儲存格的屬性。 實作 SpreadsheetItem 控制項模式的控件也應該實作 GridItem 控制件模式。
樣式 IStylesProvider IUIAutomationStylesPattern 用來描述具有特定樣式、填滿色彩、填滿圖樣或形狀的使用者介面元素。
同步輸入 ISynchronizedInputProvider IUIAutomationSynchronizedInputPattern 用於接受鍵盤或滑鼠輸入的控制件。
數據表 ITableProvider IUIAutomationTablePattern 用於具有方格和標頭資訊的控制項。
TableItem ITableItemProvider IUIAutomationTableItemPattern 用於數據表中的項目。
文字 ITextProvider IUIAutomationTextPattern 用於編輯公開文字資訊的控制件和檔。
TextEdit ITextEditProvider IUIAutomationTextEditPattern 用於編輯以程式設計方式修改文字的控制件,例如執行自動更正或啟用輸入組合的控件。
TextChild ITextChildProvider IUIAutomationTextChildPattern 用來存取支援 Text 控制樣式的元素的最接近上層祖先。
TextRange ITextRangeProvider IUIAutomationTextRange 用於從文字型控件擷取文字內容、文字屬性和內嵌物件,例如編輯控件和檔。
切換 IToggleProvider IUIAutomationTogglePattern 用於狀態可切換的控制項,例如複選框和可勾選的選單項目。
轉換 ITransformProvider IUIAutomationTransformPattern 用於可重設大小、移動和旋轉的控制件。 轉換控制樣式的典型用法是在設計工具、表單、圖形編輯器和繪圖應用程式中。
IValueProvider IUIAutomationValuePattern 用於值不在指定範圍內的控件,例如日期時間選擇器。
VirtualizedItem IVirtualizedItemProvider IUIAutomationVirtualizedItemPattern 用於控制項,來處理虛擬清單中的項目。
視窗 IWindowProvider IUIAutomationWindowPattern 用於視窗。 範例包括最上層應用程式視窗、多文檔介面 (MDI) 子視窗和對話框。

 

概念

實作 UI 自動化控制範本

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