ExpandCollapse コントロール パターン
プロパティ、メソッド、イベントに関する情報など、 IExpandCollapseProvider を実装するためのガイドラインと規則について説明します。 ExpandCollapse コントロール パターンは、より多くのコンテンツを表示するために視覚的に展開し、折りたたんでコンテンツを非表示にするコントロールをサポートするために使用されます。
このコントロール パターンを実装するコントロールの例については、「 コントロールの種類とサポートされているコントロール パターン」を参照してください。
このトピックは、次のセクションで構成されています。
実装のガイドラインと規則
ExpandCollapse コントロール パターンを実装する場合は、次のガイドラインと規則に注意してください。
拡張/折りたたみ機能を備えた UI を提供する子オブジェクトを使用して構築された集計コントロールは、 ExpandCollapse コントロール パターンをサポートする必要があります。一方、子要素はサポートしていません。 たとえば、コンボ ボックス コントロールはリスト ボックス、ボタン、および編集コントロールの組み合わせで作成されますが、 ExpandCollapse コントロール パターンをサポートする必要があるのは親コンボ ボックスだけです。
注意
例外は、個々のメニュー項目オブジェクトの集計であるメニュー コントロールです。 メニュー項目オブジェクトは ExpandCollapse コントロール パターンをサポートできますが、親メニュー コントロールはサポートできません。 同様の例外は、ツリーとツリー項目のコントロールに適用されます。
コントロールの IExpandCollapseProvider::ExpandCollapseState が ExpandCollapseState_LeafNodeに設定されている場合、コントロールに対する ExpandCollapse 機能は現在非アクティブであり、このコントロール パターンを使用して取得できる情報は ExpandCollapseState のみです。 その後、子オブジェクトが追加されると、 ExpandCollapseState が変更され、 ExpandCollapse 機能がアクティブになります。
ExpandCollapseState は、直接の子オブジェクトの可視性のみを参照します。すべての子孫オブジェクトの可視性を参照しているわけではありません。
IExpandCollapseProvider::Expand および Collapse 機能はコントロール固有です。 この機能の動作例を次に示します。
- Office 個人用メニューには、3 つの状態のメニュー項目 ("Expanded"、"Collapsed"、および "PartiallyExpanded") を指定できます。ここで、 コントロールは Expand または Collapse が呼び出されたときに採用する状態を指定します。
- ツリー項目で Expand を呼び出すと、すべての子孫または直下の子のみが表示される場合があります。
- コントロールで Expand または Collapse を呼び出して子孫の状態を維持する場合は、状態変更イベントではなく可視性変更イベントを送信する必要があります。 折りたたまれたときに親コントロールがその子孫の状態を維持しない場合、コントロールは表示されなくなったすべての子孫を破棄し、破棄されたイベントを発生させる可能性があります。または、子孫ごとに ExpandCollapseState を 変更し、可視性変更イベントを発生させることができます。
ナビゲーションを保証するには、親 ExpandCollapseState に関係なく、オブジェクトを Microsoft UI オートメーション ツリー (適切な表示状態) に配置することをお勧めします。 子孫が必要に応じて生成される場合、それらが UI オートメーション ツリーに表示されるのは、初回の表示以降か、または可視状態になっている間に限られます。
IExpandCollapseProvider に必要なメンバー
IExpandCollapseProvider インターフェイスを実装するために、次のプロパティ、メソッド、およびイベントが必要です。
必須メンバー | メンバーの型 | メモ |
---|---|---|
ExpandCollapseState | プロパティ | なし |
Expand | 方法 | なし |
[折りたたみ] | 方法 | なし |
IUIAutomationPropertyChangedEventHandler | イベント | このコントロールには、関連するイベントはありません。この汎用イベント ハンドラーを使用します。 |
関連トピック