實作 UI 自動化 ExpandCollapse 控制項模式
注意事項 |
---|
這份文件適用於想要使用 System.Windows.Automation 命名空間中定義之 Managed UI Automation 類別的 .NET Framework 開發人員。如需 UI Automation 的最新資訊,請參閱 Windows Automation API:使用者介面自動化 (英文)。 |
本主題將介紹實作 IExpandCollapseProvider 的方針和慣例,包括屬性、方法和事件的相關資訊。 其他參考的連結列於概觀的結尾部分。
ExpandCollapsePattern 控制項模式是用於支援控制項,這些控制項會以視覺方式展開以顯示更多內容,以及摺疊以隱藏內容。 如需實作此控制項模式的控制項範例,請參閱 UI 自動化用戶端的控制項模式對應。
這個主題包含下列章節。
- 實作方針和慣例
- 必要的 IExpandCollapseProvider 成員
- 例外狀況
- 相關主題
實作方針和慣例
實作 ExpandCollapse 控制項模式時,請注意下列方針和慣例:
彙總控制項 (使用子物件建置而成,這些子物件會提供 UI 所需的展開/摺疊功能) 必須支援 ExpandCollapsePattern 控制項模式,但其子項目則不必。 例如,下拉式方塊控制項是使用清單方塊、按鈕及編輯控制項所建置而成,但是只有父下拉式方塊必須支援 ExpandCollapsePattern。
注意事項 但功能表控制項例外,其為個別 MenuItem 物件的彙總。MenuItem 物件可以支援 ExpandCollapsePattern 控制項模式,但父 Menu 控制項則不支援。Tree 和 Tree Item 控制項也有相似的例外情形。
當控制項的 ExpandCollapseState 設定為 LeafNode 時,控制項的任何 ExpandCollapsePattern 功能目前都會停用,而且可以使用這個控制項模式取得的唯一資訊是 ExpandCollapseState。 如果後續加入任何子物件,ExpandCollapseState 就會變更,並啟動 ExpandCollapsePattern 功能。
ExpandCollapseState 只會參考直接子物件的可視性,而不會參考所有子系物件的可視性。
展開和摺疊功能是控制項特定的。 以下是此行為的範例。
Office 的 [自訂] 功能表可以是三狀態的 MenuItem (Expanded、Collapsed 和 PartiallyExpanded)。在呼叫 Expand 或 Collapse 時,此控制項會指定要採取的狀態。
如果在 TreeItem 上呼叫 Expand,可能會顯示所有子代或只顯示直接子系。
如果在控制項上呼叫 Expand 或 Collapse 會維護其子代的狀態的話,則應該傳送可視性變更事件而非狀態變更事件。如果摺疊時父控制項不會維護其子代的狀態,則控制項可能會終結所有不再可見的子代並引發被終結的事件,或者它可能會變更每個子代的 ExpandCollapseState 並引發可視性變更事件。
若要保證可以進行巡覽,無論其父代 ExpandCollapseState 為何,最好都將物件放在 UI Automation 樹狀目錄 (具適當的可視性狀態) 中。 如果子代是視需要產生的,只有在初次顯示後或在可見時,它們才會出現在 UI Automation樹狀目錄中。
必要的 IExpandCollapseProvider 成員
實作 IExpandCollapseProvider 時需要使用下列屬性和方法。
必要成員 |
成員類型 |
備註 |
---|---|---|
屬性 |
無 |
|
方法 |
無 |
|
方法 |
無 |
|
事件 |
這個控制項模式沒有相關事件,請使用這個泛型委派 |
例外狀況
提供者必須擲回下列例外狀況。
例外狀況類型 |
條件 |
---|---|
當 ExpandCollapseState = LeafNode 時,呼叫 Expand 或 Collapse。 |