注
このドキュメントは、System.Windows.Automation 名前空間で定義されているマネージド UI オートメーション クラスを使用する .NET Framework 開発者を対象としています。 UI オートメーションの最新情報については、「Windows Automation API: UI オートメーション 」を参照してください。
このトピックでは、イベントとプロパティに関する情報など、 ISelectionProviderを実装するためのガイドラインと規則について説明します。 その他の参照へのリンクは、トピックの最後に一覧表示されます。
SelectionPattern コントロール パターンは、選択可能な子項目のコレクションのコンテナーとして機能するコントロールをサポートするために使用されます。 この要素の子要素は、ISelectionItemProviderを実装する必要があります。 このコントロール パターンを実装するコントロールの例については、「UI オートメーション クライアントのコントロール パターン マッピング 」を参照してください。
実装のガイドラインと規則
Selection コントロール パターンを実装する場合は、次のガイドラインと規則に注意してください。
ISelectionProviderを実装するコントロールでは、1 つまたは複数の子項目を選択できます。 たとえば、リスト ボックス、リスト ビュー、ツリー ビューでは複数の選択がサポートされますが、コンボ ボックス、スライダー、ラジオ ボタン グループでは 1 つの選択がサポートされます。
最小、最大、連続範囲を持つコントロール (音量スライダー コントロールなど) は、IRangeValueProviderではなくISelectionProviderを実装する必要があります。
IRawElementProviderFragmentRootを実装する子コントロールを管理する単一選択コントロール ([表示プロパティ] ダイアログ ボックスの [画面の解像度] スライダーや Microsoft Word の [カラー ピッカー] 選択コントロールなど) は、ISelectionProviderを実装する必要があります。子は、IRawElementProviderFragmentとISelectionItemProviderの両方を実装する必要があります。
色見本文字列マッピングの例
- メニューは SelectionPatternをサポートしていません。 グラフィックスとテキストの両方を含むメニュー項目 (Microsoft Outlook の [表示] メニューのプレビュー ウィンドウ項目など) を操作していて、状態を伝える必要がある場合は、IToggleProviderを実装する必要があります。
ISelectionProvider の必須メンバー
ISelectionProvider インターフェイスには、次のプロパティ、メソッド、およびイベントが必要です。
必須メンバー | タイプ | 注記 |
---|---|---|
CanSelectMultiple | プロパティ | AddAutomationPropertyChangedEventHandlerとRemoveAutomationPropertyChangedEventHandlerを使用してプロパティ変更イベントをサポートする必要があります。 |
IsSelectionRequired | プロパティ | AddAutomationPropertyChangedEventHandlerとRemoveAutomationPropertyChangedEventHandlerを使用してプロパティ変更イベントをサポートする必要があります。 |
GetSelection | メソッド | 無し |
InvalidatedEvent | 出来事 | コンテナー内の選択が大幅に変更され、 InvalidateLimit 定数で許可されているよりも多くの追加イベントと削除イベントを送信する必要がある場合に発生します。 |
IsSelectionRequiredプロパティとCanSelectMultipleプロパティは動的にすることができます。 たとえば、コントロールの初期状態では、 IsSelectionRequired が false
されていることを示す項目が既定で選択されていない場合があります。 ただし、項目を選択した後、コントロールには常に少なくとも 1 つの項目が選択されている必要があります。 同様に、まれに、コントロールでは初期化時に複数の項目を選択できますが、その後は 1 つの選択のみが許可されます。
例外
プロバイダーは、次の例外をスローする必要があります。
例外の種類 | 条件 |
---|---|
ElementNotEnabledException | コントロールが有効になっていない場合。 |
InvalidOperationException | コントロールが非表示の場合。 |