UI 自動化控制項模式概觀

控制項模式是介面實作,會將控制項功能的特定層面公開給 Microsoft 消費者介面自動化用戶端應用程式。 用戶端會使用透過控制項模式公開的屬性和方法,來擷取控制項特定功能的相關資訊,或操作控制項行為的特定層面。 例如,呈現表格式介面的控制項會使用 Grid 控制項模式來公開資料表中的資料列和資料行數目,以及讓用戶端從資料表擷取專案。

消費者介面自動化使用控制項模式來表示常見的控制項行為。 例如,針對可叫用的控制項使用 用控制項模式,例如按鈕,以及具有捲軸之控制項的 動控制項模式,例如清單方塊、清單檢視或下拉式方塊。 因為每個控制項模式都代表個別的功能,所以可以結合控制項模式來描述特定控制項所支援的完整功能集。

注意

匯總控制項是使用子控制項所建置的,可提供父代所公開功能的使用者介面,而父控制項應該實作通常與其子控制項相關聯的所有控制項模式。 然後相同的控制項模式便不需要由子控制項所實作。

 

本主題包含下列幾節:

使用者介面自動化控制項模式元件

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

  • 這些方法可以讓使用者介面自動化用戶端操作此控制項。
  • 屬性和事件提供控制項功能和狀態的相關資訊。
  • 消費者介面自動化 專案與其父系、子系和同層級之間的關聯性描述消費者介面自動化樹狀結構。

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

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

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

動態控制項模式

有些控制項不一定支援一組相同的控制項模式。 例如,多行編輯控制項只有在包含比可檢視區域中顯示更多的文字行時,才會啟用垂直捲動。 移除足夠的文字,因而不再需要捲動之後,捲動便會停用。 在此範例中,會根據編輯方塊中的文字量,動態支援 IUIAutomationScrollPattern

下表說明控制項模式消費者介面自動化。 資料表也會列出用來實作控制項模式的提供者介面,以及用來存取它們的用戶端介面。

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

 

概念

實作消費者介面自動化控制項模式

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