共用方式為


實作 UI 自動化 ExpandCollapse 控制模式

備註

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

本主題介紹實作 IExpandCollapseProvider的指導方針和慣例,包括屬性、方法和事件的相關信息。 其他參考的連結會列在概觀結尾。

控件 ExpandCollapsePattern 模式是用來支援以可視化方式展開以顯示更多內容的控件,並折疊以隱藏內容。 如需實作此控制項模式的控制項範例,請參閱 UI 自動化用戶端的控制項模式對應

實作指導方針和慣例

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

  • 匯總控件—由提供UI展開/折疊功能的子物件建置—必須支援ExpandCollapsePattern 控件模式,而子元素則無需支援。 例如,下拉式方塊控件是由清單框、按鈕和編輯控件組合而成,但只有作為父控件的下拉式方塊必須支援ExpandCollapsePattern

    備註

    功能表控制是一個例外,它是個別 MenuItem 物件的匯總。 MenuItem 物件可以支援 ExpandCollapsePattern 控件模式,但父功能表控件無法支援。 類似的例外狀況適用於樹狀結構和樹狀項目控制項。

  • 當控制項的ExpandCollapseState設為LeafNode時,控制項目前任何ExpandCollapsePattern功能都不活動,而且使用這個控制項模式唯一可以取得的資訊是ExpandCollapseState。 如果後續新增任何子物件,則 ExpandCollapseState 會被變更,ExpandCollapsePattern 功能則會被啟動。

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

  • 展開和折疊功能是控件特定的。 以下是此行為的範例。

    • Office 個人選單可以是三種狀態的選單項目(ExpandedCollapsedPartiallyExpanded),其中控件會指定在呼叫ExpandCollapse時要採用的狀態。

    • 呼叫 Expand TreeItem 可能會顯示所有子系,或只顯示立即子系。

    • 如果呼叫 ExpandCollapse 控件能維持其子系的狀態,應該傳送可見度變更事件,而不是狀態變更事件。如果父控件在折疊時不維護其子系的狀態,控件可能會刪除所有不再顯示的子系並觸發刪除事件;或者它可能會更改每個子系的 ExpandCollapseState,並引發可見度變更事件。

  • 若要保證流覽,不論其父系為何,應確保對象位於UI自動化樹狀結構中並處於適當的可見度狀態。 如果按需生成子系元素,則它們可能只在首次顯示時出現在UI自動化樹中,或者僅在它們可見時出現在UI自動化樹中。

IExpandCollapseProvider 的必要成員

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

必要成員 成員類型 註釋
ExpandCollapseState 房產 沒有
Expand 方法 沒有
Collapse 方法 沒有
AutomationPropertyChangedEventHandler 事件 此控件沒有相關聯的事件;使用此泛型委派。

例外狀況

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

例外狀況類型 狀況
InvalidOperationException ExpandCollapse會在ExpandCollapseState = LeafNode時被呼叫。

另請參閱