共用方式為


ListItem 控制件類型的UI自動化支援

備註

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

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

列舉項目控制項是實作 ListItem 控制項類型的控制項範例。

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

必要的 UI 自動化樹狀結構

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

控制項檢視 內容檢視
清單項目

- 影像 (0 或更多)
- 文字 (0 或更多)
- 編輯 (0 或更多)
清單項目

UI 自動化樹視圖中的清單項目控制的子元素必須始終為 "0"。 若控制項的結構使清單項目下包含其他項目,則它應遵循 TreeItem 控制項類型的 UI 自動化支援 需求。

必要的UI自動化屬性

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

UI 自動化屬性 價值觀 註釋
AutomationIdProperty 請參閱備註。 這個屬性的值在應用程式中的所有控件中必須是唯一的。
BoundingRectangleProperty 請參閱備註。 此屬性的這個值應該包含清單專案的影像和文字內容區域。
ClickablePointProperty 視情況而定 如果清單控制項具有可點選的點(可以按兩下以讓清單取得焦點的點),則必須透過這個屬性公開該點。 如果清單控制項完全由子項目所涵蓋,則會引發 NoClickablePointException,表示客戶端應該請求清單控制項內的項目提供可點選的位點。
NameProperty 請參閱備註。 清單專案控制件的 name 屬性值來自專案的文字內容。
LabeledByProperty 請參閱備註。 如果有靜態文字標籤,則此屬性必須公開該控件的參考。
ControlTypeProperty 清單項目 此值與所有使用者介面架構的值相同。
LocalizedControlTypeProperty 列表項目 對應於 ListItem 控制項的在地語系化字串。
IsContentElementProperty 清單控制件一律包含在使用者介面自動化樹狀結構的內容檢視中。
IsControlElementProperty 清單控制件一律包含在UI自動化樹狀結構的控件檢視中。
IsKeyboardFocusableProperty 如果容器可以接受鍵盤輸入,則這個屬性值應該是 true。
HelpTextProperty "" 清單控件的說明文字應該說明為何要求使用者從選項清單中做出選擇,這通常是透過工具提示呈現的相同類型資訊。 例如,「選取項目以設定您的監視器的顯示解析度」。
ItemTypeProperty 視情況而定 對於代表基礎對象的清單專案控件,應該公開這個屬性。 這些清單專案控制項通常會有與用戶與基礎對象相關聯之控件相關聯的圖示。
IsOffscreenProperty 視情況而定 這個屬性必須傳回一個值,指出清單專案目前是否已捲動至包含實作捲動控制模式的父容器內的檢視。

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

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

控制件模式 支援 註釋
ISelectionItemProvider 是的 清單專案控制項必須實作此控制模式。 這可讓清單專案控件在選取時傳達。
IScrollItemProvider 視情況而定 如果清單專案包含在可捲動的容器內,則必須實作此控件模式。
IToggleProvider 視情況而定 如果清單專案是可檢查的,而且動作不會執行選取狀態變更,則必須實作此控件模式。
IExpandCollapseProvider 視情況而定 如果項目可以顯示或隱藏資訊,則必須實作此控制模式。
IValueProvider 視情況而定 如果可以編輯專案,則必須實作此控件模式。 清單項目控制的變更會導致NamePropertyValue的值發生變化。
IGridItemProvider 視情況而定 如果清單容器內支援項目到項目的空間導覽,且容器排列在行和列中,則需要實作網格項目控制模式。
IInvokeProvider 視情況而定 如果某個項目具有可在其上執行的命令,且這些命令與選取項目是分開的,則必須套用此模式。 這通常是與按兩下清單專案控件相關聯的動作。 範例包括從 Microsoft Windows 檔案總管開啟文件,或在 Microsoft Windows Media Player 播放音樂檔案。

必要的UI自動化事件

下表列出所有清單專案控制項必須支援的UI自動化事件。 如需事件的詳細資訊,請參閱 UI Automation Events Overview

UI 自動化事件 支援 註釋
InvokedEvent 視情況而定 沒有
ElementAddedToSelectionEvent 為必填項目 沒有
ElementRemovedFromSelectionEvent 為必填項目 沒有
ElementSelectedEvent 為必填項目 沒有
BoundingRectangleProperty 屬性變更事件。 為必填項目 沒有
IsOffscreenProperty 屬性變更事件。 為必填項目 沒有
IsEnabledProperty 屬性變更事件。 為必填項目 沒有
NameProperty 為必填項目 沒有
ItemStatusProperty 屬性變更事件。 視情況而定 沒有
ExpandCollapseStateProperty 屬性變更事件。 視情況而定 沒有
ValueProperty 屬性變更事件。 視情況而定 沒有
ToggleStateProperty 屬性變更事件。 視情況而定 沒有
AutomationFocusChangedEvent 為必填項目 沒有
StructureChangedEvent 為必填項目 沒有

另請參閱