次の方法で共有


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 の範囲に正規化する必要があります。

  • HorizontallyScrollablePropertyVerticallyScrollablePropertyIsEnabledPropertyとは無関係です。

  • HorizontallyScrollableProperty = false の場合は、HorizontalViewSizeProperty を 100% に設定し、HorizontalScrollPercentPropertyNoScroll に設定する必要があります。 同様に、 VerticallyScrollableProperty = false の場合は、 VerticalViewSizeProperty を 100% に設定し、 VerticalScrollPercentPropertyNoScroll」をご覧ください。 これにより、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 ScrollSetScrollPercent はどちらも、サポートされていない方向にスクロールされたときに、この例外をスローします。

関連項目