次の方法で共有


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

メモメモ

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

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

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

このトピックは、次のセクションで構成されています。

  • 実装のガイドラインと規則
  • IExpandCollapseProvider の必須メンバー
  • 例外
  • 関連トピック

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

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

  • 展開または折りたたむ機能の UI を提供する子オブジェクトを使用して作成された集約コントロールが、ExpandCollapsePattern をサポートする必要があります。その子要素は、サポートする必要はありません。 たとえば、コンボ ボックス コントロールは、リスト ボックス、ボタン、およびエディット コントロールの組み合わせを使用して作成されますが、ExpandCollapsePattern をサポートする必要があるのは、親のコンボ ボックスだけです。

    メモメモ

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

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

  • ExpandCollapseState は、直接の子オブジェクトだけの可視性を表し、すべての子孫オブジェクトの可視性を表しません。

  • Expand と Collapse は、コントロール固有の機能です。 この動作の例を次に示します。

    • Office Personal の Menu には、3 つの状態を示す MenuItem (ExpandedCollapsed、および PartiallyExpanded) を指定できます。この場合、Expand または Collapse を呼び出したときに選択される状態は、コントロールによって指定されます。

    • TreeItem で Expand を呼び出すと、すべての子孫または直接の子だけを表示できます。

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

  • ナビゲーションを保証するには、オブジェクトを親の ExpandCollapseState に関係なく、(適切な表示状態を設定して) UI Automation ツリー内に配置することをお勧めします。 子孫が必要に応じて生成される場合、それらが UI Automation ツリーに表示されるのは、初回の表示以降か、または可視状態になっている間に限られます。

IExpandCollapseProvider の必須メンバー

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

必須メンバー

メンバー型

説明

ExpandCollapseState

プロパティ

なし

Expand

メソッド

なし

Collapse

メソッド

なし

AutomationPropertyChangedEventHandler

イベント

このコントロールにはイベントが関連付けられていません。このジェネリック デリゲートを使用します。

例外

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

例外の種類

状態

InvalidOperationException

ExpandCollapseState = LeafNode の場合、Expand または Collapse のいずれかが呼び出されます。

参照

処理手順

UI オートメーション プロバイダーでのコントロール パターンのサポート

TreeWalker を使用した UI オートメーション要素間の移動

UI オートメーションにおけるキャッシュの使用

概念

UI オートメーション コントロール パターンの概要

クライアントの UI オートメーション コントロール パターン

UI オートメーション ツリーの概要