實作 UI 自動化 ExpandCollapse 控制項模式
注意
本文件適用對象為 .NET Framework 開發人員,其想要使用 System.Windows.Automation 命名空間中定義的受控 UI 自動化類別。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:UI 自動化。
本主題簡介實作 IExpandCollapseProvider的方針和慣例,包括屬性、方法和事件的相關資訊。 其他參考的連結會在概觀的結尾列出。
ExpandCollapsePattern 控制項模式可支援控制項以視覺化方式展開來顯示更多內容和摺疊以隱藏內容。 如需實作此控制項模式的控制項範例,請參閱 Control Pattern Mapping for UI Automation Clients。
實作方針和慣例
實作 ExpandCollapse 控制項模式時,請注意下列方針和慣例:
彙總控制項 - 以提供 UI 展開/摺疊功能的子物件建置 — 必須支援 ExpandCollapsePattern 控制項模式,而其子項目並不支援。 例如,使用清單方塊、按鈕和編輯控制項組合所建置的下拉式方塊控制項,但是它只是必須支援 ExpandCollapsePattern的父下拉式方塊。
注意
例外狀況是功能表控制項,也就是個別 MenuItem 物件的彙總。 MenuItem 物件可以支援 ExpandCollapsePattern 控制項模式,但是父功能表控制項無法支援。 樹狀結構和樹狀目錄項目控制項適用類似的例外狀況。
當控制項的 ExpandCollapseState 設為 LeafNode時,控制項的任何 ExpandCollapsePattern 功能目前非使用中,可以使用此控制項模式取得的唯一資訊是 ExpandCollapseState。 如果後續新增任何子物件, ExpandCollapseState 會變更且 ExpandCollapsePattern 功能會啟動。
ExpandCollapseState 是指僅限直屬子物件的可見度,而非所有子系物件的可見度。
展開和摺疊功能是控制項專屬功能。 以下是此行為的範例:
Office 個人功能表可以是三種狀態 MenuItem (Expanded、 Collapsed 和 PartiallyExpanded),其中控制項會指定當呼叫 Expand 或 Collapse 時要採用的狀態。
在 TreeItem 上呼叫 Expand 可能會顯示所有子代或只顯示直屬子系。
如果在控制項上呼叫 Expand 或 Collapse 會維護其子代的狀態,應該會傳送可見度變更事件,如果父控制項在摺疊時不會維護其子代的狀態,則不是狀態變更事件,控制項可能會終結所有不再顯示的子代,並引發已終結事件,或者它可能會針對每個子代變更 ExpandCollapseState 並且引發可見度變更事件。
若要保證導覽,物件最好是位於 UI 自動化樹狀結構中 (具有適當的可見度狀態),不論其父系 ExpandCollapseState 為何。 如果子系是隨選產生,則其只有在第一次顯示或可見時,才會出現在 UI 自動化樹狀結構中。
IExpandCollapseProvider 的必要成員
以下是實作 IExpandCollapseProvider的必要屬性和方法。
必要成員 | 成員類型 | 備註 |
---|---|---|
ExpandCollapseState | 屬性 | 無 |
Expand | 方法 | 無 |
Collapse | 方法 | 無 |
AutomationPropertyChangedEventHandler | Event | 此控制項沒有相關聯的事件;使用這個泛型委派。 |
例外狀況
提供者必須擲回下列例外狀況。
例外狀況類型 | Condition |
---|---|
InvalidOperationException | 當 Expand 或 Collapse 時會呼叫 ExpandCollapseState = LeafNode。 |