ExpandCollapse 控制項模式

描述實作 IExpandCollapseProvider的指導方針和慣例,包括屬性、方法和事件的相關資訊。 ExpandCollapse控制項模式可用來支援以視覺化方式展開以顯示更多內容的控制項,並折迭以隱藏內容。

如需實作此控制項模式的控制項範例,請參閱 控制項類型及其支援的控制項模式

本主題包含下列各節。

實作方針和慣例

實作 ExpandCollapse 控制項模式時,請注意下列指導方針和慣例:

  • 使用提供展開/折迭功能的 UI 所建置的匯總控制項必須支援 ExpandCollapse 控制項模式,而其子項目則不支援。 例如,下拉式方塊控制項是使用清單方塊、按鈕和編輯控制項的組合所建置,但它只是必須支援 ExpandCollapse 控制項模式的父下拉式方塊。

    注意

    例外狀況是功能表控制項,這是個別功能表項目物件的匯總。 功能表項目物件可以支援 ExpandCollapse 控制項模式,但父功能表控制項無法支援。 類似的例外狀況適用于樹狀結構和樹狀目錄專案控制項。

     

  • 當控制項的 IExpandCollapseProvider::ExpandCollapseState 設定為 ExpandCollapseState_LeafNode時,控制項的任何 ExpandCollapse 功能目前為非作用中,而且可以使用這個控制項模式取得的唯一資訊是 ExpandCollapseState。 如果後續新增任何子物件, 則 ExpandCollapseState 會變更並啟動 ExpandCollapse 功能。

  • ExpandCollapseState 僅是指立即子物件的可見度;它不會參考所有子代物件的可見度。

  • IExpandCollapseProvider::Expand and Collapse 功能是控制項特定的。 以下是此行為的範例:

    • Office 個人功能表可以是三種狀態功能表項目, (「Expand」、「Collapsed」 和 「PartiallyExpanded」) 其中控制項指定要在呼叫 ExpandCollapse 時採用的狀態。
    • 在樹狀結構專案上呼叫 Expand 可能會顯示所有子代或只顯示立即子系。
    • 如果在控制項上呼叫 ExpandCollapse 會維護其子系的狀態,則應該傳送可見度變更事件,而不是狀態變更事件。 如果父控制項在折迭時不會維護其子系的狀態,控制項可能會終結不再顯示的所有子代,並引發終結的事件;或者,它可能會變更每個子代的 ExpandCollapseState ,並引發可見度變更事件。
  • 為了保證流覽,不論其父代ExpandCollapseState為何,物件都位於 Microsoft 消費者介面自動化 樹狀結構 (,且其可見度狀態) 。 如果子系是隨選產生,則其只有在第一次顯示或可見時,才會出現在 UI 自動化樹狀結構中。

IExpandCollapseProvider的必要成員

實作 IExpandCollapseProvider 介面時,需要下列屬性、方法和事件。

必要成員 成員類型 備註
ExpandCollapseState 屬性
展開 方法
摺疊 方法
IUIAutomationPropertyChangedEventHandler 事件 此控制項沒有相關聯的事件;使用此泛型事件處理常式。

 

控制項類型及其支援的控制項模式

UI 自動化控制項模式概觀

UI 自動化樹狀目錄概觀