TreeItem 控制項類型
本主題提供TreeItem控制項類型的 Microsoft 消費者介面自動化支援相關資訊。
TreeItem控制項類型代表樹狀結構容器內的節點。 每個節點都可能包含其他節點,稱為「子節點」。 父節點或包含子節點的節點可以顯示為展開或摺疊。
下列各節會定義TreeItem控制項類型所需的樹狀結構、屬性、控制項模式和事件消費者介面自動化。 消費者介面自動化需求適用于 UI 架構/平臺整合消費者介面自動化控制項類型和控制項模式支援的所有樹狀專案控制項。
本主題包含下列各節。
一般樹狀結構
下表描述與樹狀專案控制項相關的消費者介面自動化樹狀結構的典型控制項和內容檢視,並描述每個檢視中可包含的內容。 如需 UI 自動化樹狀結構的詳細資訊,請參閱 UI 自動化樹狀結構概觀。
控制項檢視 | 內容檢視 |
---|---|
|
|
樹狀結構項目控制項在 UI 自動化樹狀結構的內容檢視中可有零個以上的樹狀結構項目子項。 如果樹狀結構專案控制項的功能超出下面所列控制項模式中公開的功能,控制項應該以 DataItem 控制項類型為基礎。
折迭樹狀結構專案不會出現在控制項檢視或內容檢視中,直到它們展開並顯示 (或可以捲動到檢視) 。
控制項檢視可以包含控制項的額外詳細資訊,包括相關的影像或按鈕。 例如,大綱模式中的項目可能包含展開或摺疊大綱的影像以及按鈕。 這些詳細資料物件不會出現在內容檢視中,因為資訊已經由父樹狀結構專案表示。
從畫面捲動的樹狀結構專案會出現在消費者介面自動化樹狀結構的控制項和內容檢視中,而且應該將IUIAutomationElement::CurrentIsOffscreen (或CachedIsOffscreen) 屬性設定為TRUE。
相關屬性
下表列出消費者介面自動化屬性,其值或定義與TreeItem控制項類型特別相關。 如需消費者介面自動化屬性的詳細資訊,請參閱從 消費者介面自動化 Elements 擷取屬性。
使用者介面自動化屬性 | 值 | 注意 |
---|---|---|
UIA_AutomationIdPropertyId | 請參閱備註。 | 此屬性的值在消費者介面自動化樹狀結構的原始檢視中的所有對等專案之間必須是唯一的。 |
UIA_BoundingRectanglePropertyId | 請參閱備註。 | 包含整個控制項的最外層矩形。 |
UIA_ClickablePointPropertyId | 請參閱備註。 | 這個屬性必須傳回會導致樹狀結構專案變更選取狀態或變成焦點的位置。 |
UIA_ControlTypePropertyId | TreeItem | 此值與所有使用者介面架構的值相同。 |
UIA_IsContentElementPropertyId | TRUE | 樹狀目錄專案控制項一律包含在消費者介面自動化樹狀結構的內容檢視中。 |
UIA_IsControlElementPropertyId | TRUE | 樹狀目錄專案控制項一律包含在消費者介面自動化樹狀結構的控制項檢視中。 |
UIA_IsKeyboardFocusablePropertyId | 請參閱備註。 | 如果控制項可接收鍵盤焦點,就必定支援此屬性。 |
UIA_IsOffscreenPropertyId | 請參閱備註。 | 這個屬性會指出樹狀專案控制項是否在畫面上捲動。 |
UIA_ItemStatusPropertyId | 請參閱備註。 | 如果控制項包含動態更新的狀態,則必須支援這個屬性,讓輔助技術可以在元素的狀態變更時收到更新。 |
UIA_ItemTypePropertyId | 請參閱備註。 | 如果樹狀專案控制項使用視覺化圖示來表示是特定類型的專案,則必須支援此屬性,而且必須指出專案類型。 |
UIA_LabeledByPropertyId | NULL | 樹狀結構項目控制項會自行設定標籤。 |
UIA_LocalizedControlTypePropertyId | 請參閱備註。 | 對應到 TreeItem 控制項類型的當地語系化字串。 en-US 或英文 (美國) 的預設值為「樹狀結構專案」。 |
UIA_NamePropertyId | 請參閱備註。 | 此屬性會公開每個樹狀結構項目控制項顯示的文字。 |
必要的控制項模式
下表列出所有樹狀專案控制項都必須支援的消費者介面自動化控制項模式。 如需控制項模式的詳細資訊,請參閱 UI Automation Control Patterns Overview。
控制項模式/模式屬性 | 支援/值 | 備註 |
---|---|---|
IExpandCollapseProvider | 必要 | 所有樹狀結構專案都必須支援 ExpandCollapse 控制項模式,因為所有專案都可以展開或折迭。 |
ExpandCollapseState | 已展開、已摺疊或分葉節點 | 樹狀結構專案是未展開或折迭的分葉節點。 |
IInvokeProvider | 相依 | 如果樹狀結構專案可以執行命令,請實作 Invoke 控制項模式。 |
IScrollItemProvider | 相依 | 如果樹狀結構容器支援Scroll控制項模式,請實作ScrollItem控制項模式。 |
ISelectionItemProvider | 相依 | 如果使用者返回樹狀結構容器時,可以保留作用中的選取專案,請實作 SelectionItem 控制項模式。 |
SelectionContainer | 必要 | 此屬性會針對容器內的所有專案公開相同的容器。 |
必要的事件
下表列出樹狀專案控制項需要支援消費者介面自動化事件。 如需 UI Automation Events Overview事件的詳細資訊,請參閱
UI 自動化事件 | 備註 |
---|---|
UIA_AutomationFocusChangedEventId | |
UIA_BoundingRectanglePropertyId 屬性變更事件。 | |
UIA_ExpandCollapseExpandCollapseStatePropertyId 屬性變更事件。 | |
UIA_Invoke_InvokedEventId | 如果控制項支援 Invoke 控制項模式,它必須支援這個事件。 |
UIA_IsEnabledPropertyId 屬性變更事件。 | 如果控制項支援 IsEnabled 屬性,它必須支援這個事件。 |
UIA_IsOffscreenPropertyId 屬性變更事件。 | 如果控制項支援 IsOffscreen 屬性,它必須支援此事件。 |
UIA_ItemStatusPropertyId 屬性變更的事件。 | 如果控制項支援 ItemStatus 屬性,它必須支援這個事件。 |
UIA_MultipleViewCurrentViewPropertyId 屬性變更事件。 | 如果控制項支援 MultipleView 控制項模式,它必須支援這個事件。 |
UIA_NamePropertyId 屬性變更事件。 | |
UIA_SelectionItem_ElementAddedToSelectionEventId | 如果控制項支援 SelectionItem 控制項模式,它必須支援這個事件。 |
UIA_SelectionItem_ElementRemovedFromSelectionEventId | 如果控制項支援 SelectionItem 控制項模式,它必須支援這個事件。 |
UIA_SelectionItem_ElementSelectedEventId | 如果控制項支援 SelectionItem 控制項模式,它必須支援這個事件。 |
UIA_StructureChangedEventId | |
UIA_ToggleToggleStatePropertyId 屬性變更事件。 | 如果控制項支援 切換 控制項模式,它必須支援這個事件。 |
UIA_ValueValuePropertyId 屬性變更事件。 | 如果控制項支援 Value 控制項模式,它必須支援這個事件。 |
備註
如果樹狀結構專案具有子大綱節點以外的子項目,提供者必須謹慎且清楚地處理子物件資訊。 在消費者介面自動化中,樹狀結構是由樹狀結構本身處理。 藉由擁有一或多個非大綱節點子系,它們與實際子大綱節點之間的差異會變得嚴重模棱兩可。
相關主題