共用方式為


實作 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 (ExpandedCollapsedPartiallyExpanded)。在呼叫 ExpandCollapse 時,此控制項會指定要採取的狀態。

    • 如果在 TreeItem 上呼叫 Expand,可能會顯示所有子代或只顯示直接子系。

    • 如果在控制項上呼叫 ExpandCollapse 會維護其子代的狀態的話,則應該傳送可視性變更事件而非狀態變更事件。如果摺疊時父控制項不會維護其子代的狀態,則控制項可能會終結所有不再可見的子代並引發被終結的事件,或者它可能會變更每個子代的 ExpandCollapseState 並引發可視性變更事件。

  • 若要保證可以進行巡覽,無論其父代 ExpandCollapseState 為何,最好都將物件放在 UI Automation 樹狀目錄 (具適當的可視性狀態) 中。 如果子代是視需要產生的,只有在初次顯示後或在可見時,它們才會出現在 UI Automation樹狀目錄中。

必要的 IExpandCollapseProvider 成員

實作 IExpandCollapseProvider 時需要使用下列屬性和方法。

必要成員

成員類型

備註

ExpandCollapseState

屬性

Expand

方法

Collapse

方法

AutomationPropertyChangedEventHandler

事件

這個控制項模式沒有相關事件,請使用這個泛型委派

例外狀況

提供者必須擲回下列例外狀況。

例外狀況類型

條件

InvalidOperationException

ExpandCollapseState = LeafNode 時,呼叫 ExpandCollapse

請參閱

工作

支援 UI 自動化提供者的控制項模式

使用 TreeWalker 巡覽 UI 自動化項目

使用 UI 自動化中的快取

概念

UI 自動化控制項模式概觀

用戶端的 UI 自動化控制項模式

UI 自動化樹狀目錄概觀