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