UI オートメーション ExpandCollapse コントロール パターンの実装
更新 : 2007 年 11 月
ここでは、プロパティ、メソッド、イベントに関する情報など、IExpandCollapseProvider を実装するガイドラインと規則について説明します。追加参照へのリンクは概要の最後に示します。
ExpandCollapsePattern コントロール パターンは、視覚的にコンテンツを展開して表示したり、コンテンツを折りたたんで非表示にしたりするコントロールをサポートするために使用します。このコントロール パターンを実装するコントロールの例については、「UI オートメーション クライアントのコントロール パターン マッピング」を参照してください。
このトピックには次のセクションが含まれています。
- 実装のガイドラインと規則
- IExpandCollapseProvider の必須メンバ
- 例外
- 関連トピック
実装のガイドラインと規則
ExpandCollapse コントロール パターンを実装する場合は、次のガイドラインと規則に注意してください。
展開または折りたたむ機能の UI を提供する子オブジェクトを使用して作成された集約コントロールが、ExpandCollapsePattern をサポートする必要があります。その子要素は、サポートする必要はありません。たとえば、コンボ ボックス コントロールは、リスト ボックス、ボタン、およびエディット コントロールの組み合わせを使用して作成されますが、ExpandCollapsePattern をサポートする必要があるのは、親のコンボ ボックスだけです。
メモ : 例外は、メニュー コントロールです。これは、個別の MenuItem オブジェクトの集約です。MenuItem オブジェクトは ExpandCollapsePattern コントロール パターンをサポートできますが、親 Menu コントロールはサポートできません。同様の例外は Tree コントロールと Tree Item コントロールにも適用されます。
コントロールの ExpandCollapseState が LeafNode に設定されている場合、コントロールに対して現在アクティブな ExpandCollapsePattern 機能は存在せず、このコントロール パターンを使用して取得できる情報は ExpandCollapseState だけです。その後、子オブジェクトが追加された場合は、ExpandCollapseState が変更され、ExpandCollapsePattern 機能はアクティブになります。
ExpandCollapseState は、直接の子オブジェクトだけの可視性を表し、すべての子孫オブジェクトの可視性を表しません。
Expand と Collapse は、コントロール固有の機能です。この動作の例を次に示します。
Office Personal の Menu には、3 つの状態を示す MenuItem (Expanded、Collapsed、および PartiallyExpanded) を指定できます。この場合、Expand または Collapse を呼び出したときに選択される状態は、コントロールによって指定されます。
TreeItem で Expand を呼び出すと、すべての子孫または直接の子だけを表示できます。
子孫の状態を保持するコントロールで Expand または Collapse を呼び出した場合は、状態変更イベントではなく、表示変更イベントを送信する必要があります。親コントロールが、折りたたまれたときの子孫の状態を保持しない場合、コントロールは表示されなくなったすべての子孫を破棄し、破棄イベントを発生させる場合があります。また、子孫ごとに ExpandCollapseState を変更して、表示変更イベントを発生させる場合もあります。
ナビゲーションを保証するには、オブジェクトを親の ExpandCollapseState に関係なく、(適切な表示状態を設定して) UI オートメーション ツリー内に配置することをお勧めします。子孫が必要に応じて生成される場合、それらが UI オートメーション ツリーに表示されるのは、初回の表示以降か、または可視状態になっている間に限られます。
IExpandCollapseProvider の必須メンバ
次のプロパティとメソッドは、IExpandCollapseProvider の実装時に必要です。
必須メンバ |
メンバ型 |
説明 |
---|---|---|
Property |
なし |
|
Method |
なし |
|
Method |
なし |
|
Event |
このコントロールにはイベントが関連付けられていません。このジェネリック デリゲートを使用します。 |
例外
プロバイダは次の例外をスローする必要があります。
例外の種類 |
条件 |
---|---|
ExpandCollapseState = LeafNode の場合、Expand または Collapse のいずれかが呼び出されます。 |
参照
処理手順
UI オートメーション プロバイダでのコントロール パターンのサポート
TreeWalker を使用した UI オートメーション要素間の移動