UI オートメーション Scroll コントロール パターンの実装
Note
このドキュメントは、System.Windows.Automation 名前空間で定義されているマネージド UI オートメーション クラスを使用する .NET Framework 開発者を対象としています。 UI オートメーションの最新情報については、Windows Automation API の「UI オートメーション」を参照してください。
この記事では、イベントやプロパティに関する情報など、IScrollProvider の実装のためのガイドラインと規則について説明します。 その他のリファレンスへのリンクは、トピックの最後に記載します。
ScrollPattern コントロール パターンは、子オブジェクトのコレクションのスクロール可能なコンテナーとして機能するコントロールをサポートするために使用します。 通常は、スクロール バーを使用してスクロール機能をサポートするためにコントロールが必要ですが、ここでは必要ありません。
スクロール バーを使用しないスクロール コントロールの例
このコントロールを実装するコントロールの例については、「 Control Pattern Mapping for UI Automation Clients」を参照してください。
実装のガイドラインと規則
スクロール コントロール パターンを実装する場合は、次のガイドラインと規則に留意してください。
このコントロールの子は IScrollItemProviderを実装する必要があります。
コンテナー コントロールのスクロール バーは ScrollPattern コントロール パターンをサポートしません。 代わりに、 RangeValuePattern コントロール パターンをサポートする必要があります。
スクロールをパーセンテージで測定する場合は、スクロール目盛りに関連するすべての値または量を 0 ~ 100 の範囲に正規化する必要があります。
HorizontallyScrollableProperty と VerticallyScrollableProperty は IsEnabledPropertyとは無関係です。
HorizontallyScrollableProperty =
false
の場合は、HorizontalViewSizeProperty を 100% に設定し、HorizontalScrollPercentProperty を NoScroll に設定する必要があります。 同様に、 VerticallyScrollableProperty =false
の場合は、 VerticalViewSizeProperty を 100% に設定し、 VerticalScrollPercentProperty を NoScroll」をご覧ください。 これにより、UI オートメーション クライアントは、SetScrollPercent メソッド内でこれらのプロパティ値を使用しながら、クライアントがスクロールしようとしていない方向がアクティブになった場合に競合状態を回避できます。HorizontalScrollPercent はロケール固有です。 HorizontalScrollPercent = 100.0 の設定では、左から右に読む英語などの言語の場合、右端に相当する位置にコントロールのスクロール位置を設定する必要があります。 また、右から左に読むアラビア語などの言語の場合は、HorizontalScrollPercent = 100.0 の設定でスクロール位置を左端の位置に設定する必要があります。
IScrollProvider の必須メンバー
IScrollProviderの実装には、次のプロパティとメソッドが必要です。
必須メンバー | メンバーの型 | メモ |
---|---|---|
HorizontalScrollPercent | プロパティ | なし |
VerticalScrollPercent | プロパティ | なし |
HorizontalViewSize | プロパティ | なし |
VerticalViewSize | プロパティ | なし |
HorizontallyScrollable | プロパティ | なし |
VerticallyScrollable | プロパティ | なし |
Scroll | 方法 | なし |
SetScrollPercent | 方法 | なし |
このコントロール パターンには、関連するイベントがありません。
例外
プロバイダーは、次の例外をスローする必要があります。
例外の種類 | 条件 |
---|---|
ArgumentException | コントロールが水平または垂直スクロールの場合にだけScroll の値をサポートするはずが、 SmallIncrement の値が渡された場合に、 LargeIncrement がこの例外をスローします。 |
ArgumentException | SetScrollPercent は、倍精度浮動小数点型に変換できない値が渡された場合に、この例外をスローします。 |
ArgumentOutOfRangeException | SetScrollPercent は、100 を超える値または 0 未満の値が渡された場合に、この例外をスローします ( NoScrollに相当する -1 を除く)。 |
InvalidOperationException | Scroll と SetScrollPercent はどちらも、サポートされていない方向にスクロールされたときに、この例外をスローします。 |