UI オートメーション ExpandCollapse コントロール パターンの実装
Note
このドキュメントは、System.Windows.Automation 名前空間で定義されているマネージド UI オートメーション クラスを使用する .NET Framework 開発者を対象としています。 UI オートメーションの最新情報については、Windows Automation API の「UI オートメーション」を参照してください。
このトピックでは、プロパティ、メソッド、イベントに関する情報など、 IExpandCollapseProviderの実装のためのガイドラインと規則について説明します。 その他のリファレンスへのリンクは、概要の最後に記載します。
ExpandCollapsePattern コントロール パターンは、視覚的に展開してより多くのコンテンツを表示したり、折りたたんでコンテンツを非表示にしたりするコントロールをサポートするために使用します。 このコントロール パターンを実装するコントロールの例については、「 Control Pattern Mapping for UI Automation Clients」をご覧ください。
実装のガイドラインと規則
ExpandCollapse コントロール パターンを実装する場合は、次のガイドラインと規則に注意してください。
展開または折りたたみの機能を備えた UI を提供する子オブジェクトで構成された集約コントロールは、 ExpandCollapsePattern コントロール パターンをサポートする必要がありますが、その子要素がサポートする必要はありません。 たとえば、コンボ ボックス コントロールは、リスト ボックス、ボタン、およびエディット コントロールの組み合わせで構成されていますが、 ExpandCollapsePatternをサポートする必要があるのは親のコンボ ボックスのみです。
Note
メニュー コントロールは例外であり、これは個々の MenuItem オブジェクトの集合体です。 MenuItem オブジェクトは ExpandCollapsePattern コントロール パターンをサポートできますが、親の Menu コントロールはできません。 同様の例外が、Tree および Tree Item コントロールにも適用されます。
コントロールの ExpandCollapseState が LeafNodeに設定されている場合、コントロールに対して現在アクティブな ExpandCollapsePattern 機能は存在せず、このコントロール パターンを使用して取得できる情報は ExpandCollapseStateだけです。 その後、子オブジェクトが追加された場合は、 ExpandCollapseState が変更され、 ExpandCollapsePattern 機能がアクティブになります。
ExpandCollapseState は、すべての子孫オブジェクトの可視性を表すのではなく、直接の子オブジェクトの可視性のみを表します。
展開および折りたたみ機能は、コントロールに固有の機能です。 この機能の動作例を次に示します。
Office Personal のメニューには、3 つの状態を示す MenuItem (Expanded、 Collapsed 、および PartiallyExpanded) を指定できます。この場合、 Expand または Collapse を呼び出したときに選択される状態は、コントロールによって指定されます。
TreeItem で Expand を呼び出すと、すべての子孫または直接の子のみを表示できます。
コントロールでの Expand または Collapse の呼び出しによってその子孫の状態が維持されるとき、状態の変更イベントではなく、可視性の変更イベントが送信されます。折りたたみの実行時に親コントロールが子孫の状態を維持しないときは、コントロールが表示されなくなったすべての子孫を破棄し、破棄イベントを発生させる場合と、子孫ごとに ExpandCollapseState を変更して、可視性の変更イベントを発生させる場合があります。
ナビゲーションを確実にするには、オブジェクトを親の ExpandCollapseState に関係なく、(可視性の状態が適切な) UI オートメーション ツリー内に配置することをお勧めします。 子孫が必要に応じて生成される場合、それらが UI オートメーション ツリーに表示されるのは、初回の表示以降か、または可視状態になっている間に限られます。
IExpandCollapseProvider の必須メンバー
IExpandCollapseProviderの実装には、次のプロパティとメソッドが必要です。
必須メンバー | メンバーの型 | メモ |
---|---|---|
ExpandCollapseState | プロパティ | なし |
Expand | 方法 | なし |
Collapse | 方法 | なし |
AutomationPropertyChangedEventHandler | イベント | このコントロールには関連付けられているイベントがありません。この汎用デリゲートを使用します。 |
例外
プロバイダーは、次の例外をスローする必要があります。
例外の種類 | 条件 |
---|---|
InvalidOperationException | ExpandCollapseState = LeafNode の場合、Expand または Collapse のどちらかが呼び出されます。 |