共用方式為


樹狀結構控件類型的UI自動化支援

備註

本檔適用於想要使用 System.Windows.Automation 命名空間中定義的受控UI自動化類別的 .NET Framework 開發人員。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:使用者介面自動化

本主題提供樹狀結構控件類型的UI自動化支援相關信息。 在UI自動化中,控件類型是控制項必須符合的一組條件,才能使用 ControlTypeProperty 屬性。 這些條件包括UI自動化樹狀結構、UI自動化屬性值和控件模式的特定指導方針。

樹狀結構控件類型用於內容與節點階層有相關性的容器,如同檔案和資料夾顯示在 Microsoft Windows 檔案總管左窗格中的方式一樣。 每個節點都有可能包含其他節點,稱為子節點。 父節點,或包含子節點的節點,可以顯示為展開或折疊。

下列各節會定義樹控制類型所需的 UI 自動化樹結構、屬性、控制模式和事件。 使用者介面自動化需求適用於所有樹狀控件,無論是 Windows Presentation Foundation (WPF)、Win32 還是 Windows Forms。

必要的 UI 自動化樹狀結構

下表描述與樹狀控制相關的UI自動化樹的控制檢視和內容檢視,並說明每個檢視中可以包含的內容。 如需UI自動化樹狀結構的詳細資訊,請參閱 UI自動化樹狀結構概觀

控制項檢視 內容檢視


  • DataItem (0 或更多)
  • TreeItem (0 或更多)

    • TreeItem (0 或更多)• ...
  • ScrollBar (0, 1, 2)


  • DataItem (0 或更多)
  • TreeItem (0 或更多)

    • TreeItem (0 或更多)• ...

UI 自動化樹狀結構的控件檢視包含:

  • 容器內可以包含零到多個項目(項目可以基於樹狀結構項目、資料項或其他控制類型)。

  • 零,一或兩個滾動條。

使用者介面自動化樹狀結構的內容檢視包含容器內的零或多個項目(項目可以根據樹狀結構項目、數據項或其他控制項類型)。

必要的UI自動化屬性

下表列出UI自動化屬性,其值或定義與清單控件特別相關。 如需UI自動化屬性的詳細資訊,請參閱 用戶端的UI自動化屬性

UI 自動化屬性 價值觀 註釋
AutomationIdProperty 請參閱備註。 這個屬性的值在應用程式中的所有控件中必須是唯一的。
BoundingRectangleProperty 請參閱備註。 包含整個控制項的最外層矩形。
ClickablePointProperty 請參閱備註。 樹狀控制項中有一個可點擊的點,點擊後會使樹狀目錄或其中一個項目獲得焦點。 只有在單擊不會導致其中一個項目選取/取得焦點的地方時,才能取得樹狀結構的可點選點。
ControlTypeProperty 此值與所有使用者介面架構的值相同。
IsContentElementProperty 樹狀目錄控件一律包含在UI自動化樹狀結構的內容檢視中。
IsControlElementProperty 樹狀目錄控件一律包含在UI自動化樹狀結構的控件檢視中。
IsKeyboardFocusableProperty 請參閱備註。 如果控制項可接收鍵盤焦點,就必定支援此屬性。
LabeledByProperty 請參閱備註。 如果樹狀控制項有與其相關聯的標籤,這個屬性會傳回該標籤的 AutomationElement。 否則,屬性會傳回 null 參考 (Nothing 在 Microsoft Visual Basic .NET 中)。
LocalizedControlTypeProperty 對應至清單控制件類型的當地語系化字串。
NameProperty 請參閱備註。 樹狀目錄控制項名稱屬性的值通常來自標記控件的文字。 如果沒有文字標籤,則應用程式開發人員必須提供此屬性的值。

必要的使用者介面自動化控制模式

下表列出清單控制項需要支援的UI自動化控制項模式。 如需控制樣式的詳細資訊,請參閱 UI 自動化控制樣式概觀

控制件模式/模式屬性 支援/值 註釋
ISelectionProvider 視情況而定 包含一組可選取專案的樹狀結構控件必須實作此控件模式。 如果選取項目不會將有意義的資訊傳達給使用者,則不需要實作此控制模式。
CanSelectMultiple 請參閱備註。 如果樹狀目錄控件支援多重選取專案,請實作這個屬性(大部分的樹狀目錄控件都不支援多重選取專案)。
IsSelectionRequired 請參閱備註。 如果控件需要選取專案,則會公開這個屬性的值。
IScrollProvider 視情況而定 如果樹狀結構容器的內容可以捲動,請實作此控件模式。

必要的UI自動化事件

下表列出所有樹狀控件都必須支援的UI自動化事件。 如需事件的詳細資訊,請參閱 UI Automation Events Overview

UI 自動化事件 支援 註釋
InvalidatedEvent 視情況而定 沒有
BoundingRectangleProperty 屬性變更事件。 為必填項目 沒有
IsOffscreenProperty 屬性變更事件。 為必填項目 沒有
IsEnabledProperty 屬性變更事件。 為必填項目 沒有
HorizontallyScrollableProperty 屬性變更事件。 視情況而定 沒有
HorizontalScrollPercentProperty 屬性變更事件。 視情況而定 沒有
HorizontalViewSizeProperty 屬性變更事件。 視情況而定 沒有
VerticalScrollPercentProperty 屬性變更事件。 視情況而定 沒有
VerticallyScrollableProperty 屬性變更事件。 視情況而定 沒有
VerticalViewSizeProperty 屬性變更事件。 視情況而定 沒有
AutomationFocusChangedEvent 為必填項目 沒有
StructureChangedEvent 為必填項目 沒有

另請參閱