UI 自動化控制項模式概觀

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

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

注意

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

 

本主題包含下列幾節:

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

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

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

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

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

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

動態控制項模式

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

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

名稱 提供者介面 用戶端介面 描述
註釋 IAnnotationProvider IUIAutomationAnnotationPattern 用來公開檔中批註的屬性,例如連接到檔文字之邊界中的批註。
Dock IDockProvider IUIAutomationDockPattern 用於可停駐在停駐容器中的控制項,例如工具列或工具選擇區。
拖動 IDragProvider IUIAutomationDragPattern 用於支援可拖曳的控制項,或者含有可拖曳項目的控制項。
DropTarget IDropTargetProvider IUIAutomationDropTargetPattern 用於支援可成為拖放作業目標的控制項。
ExpandCollapse IExpandCollapseProvider IUIAutomationExpandCollapsePattern 用於可以展開或折迭的控制項,例如應用程式中的功能表項目,例如 [檔案] 功能表。
方格 IGridProvider IUIAutomationGridPattern 用於支援格線功能的控制項,例如調整大小和移至指定的儲存格,例如 Windows 檔案總管中的大型圖示檢視或 Microsoft Office Word中的簡單資料表。
GridItem IGridItemProvider IUIAutomationGridItemPattern 用於具有方格中儲存格的控制項。 個別儲存格應該支援 GridItem 模式,例如,Windows 檔案總管詳細資料檢視中的每個儲存格。
調用 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 用於接受鍵盤或滑鼠輸入的控制項。
Table 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 自動化用戶端的控制項模式對應