備註
本檔適用於想要使用 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自動化樹狀結構概觀。
控制項檢視 | 內容檢視 |
---|---|
樹
|
樹
|
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 | 為必填項目 | 沒有 |