次の方法で共有


UI オートメーション ExpandCollapse コントロール パターンの実装

このドキュメントは、System.Windows.Automation 名前空間で定義されているマネージド UI オートメーション クラスを使用する .NET Framework 開発者を対象としています。 UI オートメーションの最新情報については、「Windows Automation API: UI オートメーション 」を参照してください。

このトピックでは、プロパティ、メソッド、イベントに関する情報など、IExpandCollapseProviderを実装するためのガイドラインと規則について説明します。 概要の最後に、その他の参照へのリンクが一覧表示されます。

ExpandCollapsePattern コントロール パターンは、より多くのコンテンツを表示するために視覚的に展開し、折りたたんでコンテンツを非表示にするコントロールをサポートするために使用されます。 このコントロール パターンを実装するコントロールの例については、「UI オートメーション クライアントのコントロール パターン マッピング 」を参照してください。

実装のガイドラインと規則

ExpandCollapse コントロール パターンを実装する場合は、次のガイドラインと規則に注意してください。

  • 拡張/折りたたみ機能を備えた UI を提供する子オブジェクトを使用して構築された集計コントロールは、 ExpandCollapsePattern コントロール パターンをサポートする必要があります。一方、子要素ではサポートされません。 たとえば、コンボ ボックス コントロールはリスト ボックス、ボタン、および編集コントロールの組み合わせで構築されますが、 ExpandCollapsePatternをサポートする必要があるのは親コンボ ボックスだけです。

    例外は、個々の MenuItem オブジェクトの集計であるメニュー コントロールです。 MenuItem オブジェクトは ExpandCollapsePattern コントロール パターンをサポートできますが、親 Menu コントロールではサポートできません。 同様の例外は、Tree コントロールと Tree Item コントロールに適用されます。

  • コントロールの ExpandCollapseStateLeafNodeに設定されている場合、 ExpandCollapsePattern 機能は現在コントロールに対して非アクティブであり、このコントロール パターンを使用して取得できる唯一の情報は ExpandCollapseStateです。 その後、子オブジェクトが追加されると、 ExpandCollapseState が変更され、 ExpandCollapsePattern 機能がアクティブになります。

  • ExpandCollapseState は、直接の子オブジェクトの可視性のみを指します。すべての子孫オブジェクトの可視性を参照しているわけではありません。

  • 展開および折りたたみ機能はコントロール固有です。 この動作の例を次に示します。

    • Office 個人用メニューには、3 状態の MenuItem (ExpandedCollapsedPartiallyExpanded) を指定できます。この場合、コントロールは、 Expand または Collapse が呼び出されたときに採用する状態を指定します。

    • TreeItem で Expand を呼び出すと、すべての子孫または直下の子のみが表示される場合があります。

    • コントロールの Expand または Collapse を呼び出して子孫の状態を維持する場合は、状態変更イベントではなく、可視性変更イベントを送信する必要があります。折りたたまれているときに親コントロールがその子孫の状態を維持しない場合、コントロールは表示されなくなったすべての子孫を破棄し、破棄されたイベントを発生させる可能性があります。または、各子孫の ExpandCollapseState を変更して可視性変更イベントを発生させる可能性があります。

  • ナビゲーションを保証するには、親 ExpandCollapseStateに関係なく、オブジェクトが UI オートメーション ツリー (適切な可視性の状態) に存在することが望ましいです。 子孫がオンデマンドで生成された場合、最初に表示された後、または表示されている間にのみ UI オートメーション ツリーに表示される場合があります。

IExpandCollapseProvider の必須メンバー

IExpandCollapseProviderの実装には、次のプロパティとメソッドが必要です。

必須メンバー メンバーの種類 注記
ExpandCollapseState プロパティ 無し
Expand メソッド 無し
Collapse メソッド 無し
AutomationPropertyChangedEventHandler 出来事 このコントロールには、関連付けられたイベントはありません。この汎用デリゲートを使用します。

例外

プロバイダーは、次の例外をスローする必要があります。

例外の種類 条件
InvalidOperationException Expand Collapse ExpandCollapseState時に = またはLeafNodeが呼び出されます。

こちらも参照ください