備註
本檔適用於想要使用 System.Windows.Automation 命名空間中定義的受控UI自動化類別的 .NET Framework 開發人員。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:使用者介面自動化。
本主題提供 TreeItem 控制件類型的 UI 自動化支援相關信息。 在UI自動化中,控件類型是控制項必須符合的一組條件,才能使用 ControlTypeProperty 屬性。 這些條件包括UI自動化樹狀結構、UI自動化屬性值和控件模式的特定指導方針。
TreeItem 控件類型代表樹狀結構容器內的節點。 每個節點可能包含其他節點,稱為子節點。 父節點,或包含子節點的節點,可以顯示為展開或折疊。
下列各節會定義 TreeItem 控制項類型所需的 UI 自動化樹狀結構、屬性、控制件模式和事件。 使用者介面自動化需求適用於所有樹狀專案控件,無論是 Windows Presentation Foundation (WPF)、Win32 或 Windows Forms。
必要的 UI 自動化樹狀結構
下表顯示與樹狀項目控制元件有關的UI自動化樹的控制檢視和內容檢視,並描述每個檢視中可以包含的內容。 如需UI自動化樹狀結構的詳細資訊,請參閱 UI自動化樹狀結構概觀。
控制項檢視 | 內容檢視 |
---|---|
TreeItem - CheckBox (0 或 1) - 影像 (0 或 1) - 按鈕 (0 或 1) - TreeItem (0 或更多) |
TreeItem - TreeItem (0 或更多) |
樹狀目錄專案控件在UI自動化樹狀結構的內容檢視中可以有零個或多個樹狀項目子系。 如果樹狀項目控件的功能超出以下列出的控件模式所公開的功能,則控件應該基於數據項控件類型。
折疊的樹狀結構項目在展開並可見之前,將不會顯示在控件檢視或內容檢視中(或者,可以捲動到檢視中)。
控件檢視可以包含控制件的其他詳細數據,包括相關聯的影像或按鈕。 例如,大綱檢視中的專案可能包含影像,以及展開或折疊大綱的按鈕。 這些詳細數據物件不會出現在內容檢視中,因為信息已經由父樹狀結構專案表示。 被捲動至畫面之外的樹狀項目會出現在 UI 自動化樹的控制和內容檢視圖中,並且應將 IsOffscreenProperty 設為 true。
必要的UI自動化屬性
下表列出UI自動化屬性,其值或定義與清單控件特別相關。 如需UI自動化屬性的詳細資訊,請參閱 用戶端的UI自動化屬性。
UI 自動化屬性 | 價值觀 | 註釋 |
---|---|---|
AutomationIdProperty | 請參閱備註。 | 這個屬性的值在應用程式中的所有控件中必須是唯一的。 |
BoundingRectangleProperty | 請參閱備註。 | 包含整個控制項的最外層矩形。 |
ClickablePointProperty | 請參閱備註。 | 這個屬性必須傳回一個位置,該位置會導致項目變更選取狀態或成為焦點。 |
ControlTypeProperty | TreeItem | 此值與所有使用者介面架構的值相同。 |
IsContentElementProperty | 對 | 清單控制件一律包含在使用者介面自動化樹狀結構的內容檢視中。 |
IsControlElementProperty | 對 | 清單控制件一律包含在UI自動化樹狀結構的控件檢視中。 |
IsOffscreenProperty | 請參閱備註。 | 此屬性設定為標示樹狀項目控件何時從畫面捲動。 |
IsKeyboardFocusableProperty | 請參閱備註。 | 如果控制項可接收鍵盤焦點,就必定支援此屬性。 |
ItemTypeProperty | 請參閱備註。 | 如果樹狀專案控件使用可視化圖示來表示是特定類型的物件,則必須支援此屬性,並指出對象是什麼。 |
LabeledByProperty | Null |
樹狀目錄專案控件是自我標記。 |
LocalizedControlTypeProperty | 樹狀項目 | 對應到 TreeItem 控制件類型的當地語系化字串。 |
NameProperty | 請參閱備註。 | 這個屬性會公開針對每個樹狀專案控件顯示的文字。 |
必要的使用者介面自動化控制模式
下表列出清單控制項需要支援的UI自動化控制項模式。 如需控制樣式的詳細資訊,請參閱 UI 自動化控制樣式概觀。
控制件模式/模式屬性 | 支援/值 | 註釋 |
---|---|---|
IInvokeProvider | 視情況而定 | 如果樹狀結構專案有個別且可採取動作的命令,請實作此控件模式。 |
IExpandCollapseProvider | 是的 | 所有樹狀項目都可以展開或折疊。 |
ExpandCollapseState | 展開、折疊或分葉節點 | 樹狀結構項目在未展開或未折疊時會是分葉節點。 |
IScrollItemProvider | 視情況而定 | 如果樹狀結構容器支援 Scroll 控制項模式,請實作此控件模式。 |
ISelectionItemProvider | 視情況而定 | 如果使用者在返回樹狀結構容器時可以維持一個活躍的選取,請實作此控制模式。 |
SelectionContainer | 是的 | 這個屬性會針對容器內的所有項目公開相同的容器。 |
IToggleProvider | 視情況而定 | 如果樹狀目錄項目有相關的複選框,請實作此控制項模式。 |
必要的UI自動化事件
下表列出所有樹狀專案控件必須支援的UI自動化事件。 如需事件的詳細資訊,請參閱 UI 自動化事件概觀。
UI 自動化事件 | 支援 | 註釋 |
---|---|---|
AutomationFocusChangedEvent | 為必填項目 | 沒有 |
BoundingRectangleProperty 屬性變更事件。 | 為必填項目 | 沒有 |
IsEnabledProperty 屬性變更事件。 | 為必填項目 | 沒有 |
IsOffscreenProperty 屬性變更事件。 | 為必填項目 | 沒有 |
ItemStatusProperty 屬性變更事件。 | 視情況而定 | 沒有 |
NameProperty 屬性變更事件。 | 為必填項目 | 沒有 |
StructureChangedEvent | 為必填項目 | 沒有 |
ExpandCollapseStateProperty 屬性變更事件。 | 為必填項目 | 沒有 |
InvokedEvent | 視情況而定 | 沒有 |
CurrentViewProperty 屬性變更事件。 | 視情況而定 | 沒有 |
ElementAddedToSelectionEvent | 視情況而定 | 沒有 |
ElementRemovedFromSelectionEvent | 視情況而定 | 沒有 |
ElementSelectedEvent | 視情況而定 | 沒有 |
ToggleStateProperty 屬性變更事件。 | 視情況而定 | 沒有 |
ValueProperty 屬性變更事件。 | 視情況而定 | 沒有 |