TreeItem 控制件類型
本主題提供 TreeItem 控件類型的Microsoft使用者介面自動化支持相關信息。
TreeItem 控件類型代表樹狀結構容器內的節點。 每個節點可能包含其他節點,稱為子節點。 父節點,或包含子節點的節點,可以顯示為展開或折疊。
下列各節會定義 TreeItem 控件類型所需的 UI 自動化樹狀結構、屬性、控制項模式和事件。 使用者介面自動化需求適用於所有樹狀專案控件,其中 UI 架構/平臺會整合控件類型和控件模式的 UI 自動化支援。
本主題包含下列各節。
一般樹狀結構
下表描述與樹狀專案控件相關的UI自動化樹狀結構的一般控件和內容檢視,並描述每個檢視中可包含的內容。 如需 UI 自動化樹狀結構的詳細資訊,請參閱 UI 自動化樹狀結構概觀。
控件檢視 | 內容檢視 |
---|---|
|
|
樹狀目錄專案控件在UI自動化樹狀結構的內容檢視中可以有零個或多個樹狀項目子系。 如果樹狀目錄專案控件的功能超出下面所列控件模式所公開的功能,控件應該以 DataItem 控件類型為基礎。
折疊的樹狀結構專案不會出現在控件檢視或內容檢視中,直到它們展開並顯示(或可以捲動到檢視中)。
控件檢視可以包含控制件的其他詳細數據,包括相關聯的影像或按鈕。 例如,大綱檢視中的專案可能包含影像,以及展開或折疊大綱的按鈕。 這些詳細數據物件不會出現在內容檢視中,因為信息已經由父樹狀結構專案表示。
從畫面上卷動的樹狀結構專案會出現在 UI 自動化樹狀結構的控件和內容檢視中,而且應該有 IUIAutomationElement::CurrentIsOffscreen (或 CachedIsOffscreen) 属性設定 為 true。
相關屬性
下表列出UI自動化屬性,其值或定義與 TreeItem 控件類型特別相關。 如需 UI 自動化屬性的詳細資訊,請參閱 從 UI 自動化元素擷取屬性。
UI 自動化屬性 | 價值 | 筆記 |
---|---|---|
UIA_AutomationIdPropertyId | 請參閱附注。 | 在UI自動化樹狀結構的原始檢視中,此屬性的值在所有對等專案之間必須是唯一的。 |
UIA_BoundingRectanglePropertyId | 請參閱附注。 | 包含整個控件的最外框。 |
UIA_ClickablePointPropertyId | 請參閱附注。 | 這個屬性必須傳回導致樹狀結構專案變更選取狀態或成為焦點的位置。 |
UIA_ControlTypePropertyId | TreeItem | 所有UI架構的這個值都相同。 |
UIA_IsContentElementPropertyId | TRUE | 樹狀目錄專案控件一律包含在UI自動化樹狀結構的內容檢視中。 |
UIA_IsControlElementPropertyId | TRUE | 樹狀目錄專案控件一律包含在UI自動化樹狀結構的控件檢視中。 |
UIA_IsKeyboardFocusablePropertyId | 請參閱附注。 | 如果控件可以接收鍵盤焦點,它必須支援這個屬性。 |
UIA_IsOffscreenPropertyId | 請參閱附注。 | 這個屬性會指出樹狀專案控件是否從畫面上捲動。 |
UIA_ItemStatusPropertyId | 請參閱附注。 | 如果控件包含動態更新的狀態,則必須支援這個屬性,以便輔助技術可以在元素的狀態變更時接收更新。 |
UIA_ItemTypePropertyId | 請參閱附注。 | 如果樹狀專案控件使用可視化圖示來表示是特定類型的專案,則必須支援此屬性,而且必須指出項目類型。 |
UIA_LabeledByPropertyId | NULL | 樹狀目錄專案控件是自我標記。 |
UIA_LocalizedControlTypePropertyId | 請參閱附注。 | 對應到 TreeItem 控制件類型的當地語系化字串。 默認值為 en-US 或英文 (美國) 的 「樹狀專案」。 |
UIA_NamePropertyId | 請參閱附注。 | 這個屬性會公開針對每個樹狀專案控件顯示的文字。 |
必要的控制件模式
下表列出所有樹狀專案控件都必須支援的UI自動化控制項模式。 如需控制樣式的詳細資訊,請參閱 UI 自動化控制樣式概觀。
控制件模式/模式屬性 | 支援/值 | 筆記 |
---|---|---|
IExpandCollapseProvider | 必填 | 所有樹狀項目都必須支援 ExpandCollapse 控件模式,因為所有專案都可以展開或折疊。 |
ExpandCollapseState | 展開、折疊或分葉節點 | 樹狀結構專案是未展開或折疊的分葉節點。 |
IInvokeProvider | 取決於 | 如果樹狀目錄專案可以執行命令,請實作 叫用 控件模式。 |
IScrollItemProvider | 取決於 | 如果樹狀結構容器支援 Scroll 控件模式,請實作 ScrollItem 控件模式。 |
ISelectionItemProvider | 取決於 | 實作 SelectionItem 控件模式,如果使用者返回樹狀結構容器時,可能會保留使用中的選取範圍。 |
SelectionContainer | 必填 | 這個屬性會針對容器內的所有項目公開相同的容器。 |
必要事件
下表列出樹狀目錄專案控制項需要支援的 UI 自動化事件。 如需事件的詳細資訊,請參閱 UI 自動化事件概觀。
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 控件模式,它必須支援這個事件。 |
言論
如果樹狀專案具有子大綱節點以外的子元素,提供者必須仔細且清楚地處理子對象資訊。 在UI自動化中,樹狀結構是由樹狀結構本身處理。 透過具有一或多個非大綱節點子系,它們與實際子大綱節點之間的差異會變得嚴重模棱兩可。
相關主題