Visual.VisualScrollableAreaClip プロパティ


Visual のクリップ対象のスクロール可能な領域を取得または設定します。Gets or sets a clipped scrollable area for the Visual.

public:  property Nullable<System::Windows::Rect> VisualScrollableAreaClip {  protected public:
Nullable<System::Windows::Rect> get(); protected:
 void set(Nullable<System::Windows::Rect> value); };
public System.Windows.Rect? VisualScrollableAreaClip { protected internal get; protected set; }
member this.VisualScrollableAreaClip : Nullable<System.Windows.Rect> with get, set
Public Property VisualScrollableAreaClip As Nullable(Of Rect)



スクロール可能なクリップ領域を表す Rect。クリップ領域が割り当てられていない場合は nullA Rect that represents the scrollable clipping area, or null if no clipping area is assigned.


ソフトウェアでの表示時に高速スクロールを有効にするには、VisualScrollableAreaClip プロパティを設定します。Set the VisualScrollableAreaClip property to enable accelerated scrolling when rendering in software. これは、リモートデスクトップ上で実行する場合や、仮想マシンで実行する場合など、リモートレンダリングのシナリオで役立ちます。This is useful in remote rendering scenarios, such as running over Remote Desktop or running in a virtual machine. 子をスクロールする親要素で、このプロパティを設定します。Set this property on the parent element whose children will be scrolled. レンダリングがハードウェアアクセラレータの場合、VisualScrollableAreaClip プロパティを設定しても効果はありません。Setting the VisualScrollableAreaClip property has no effect when rendering is hardware accelerated.

VisualScrollableAreaClip プロパティを使用すると、特定の高度なシナリオを実現できます。The VisualScrollableAreaClip property enables specific, advanced scenarios. 次の一覧は、VisualScrollableAreaClip プロパティを使用する場合に適用される注意事項を示しています。The following list shows the caveats that apply when you use the VisualScrollableAreaClip property.

  • スクロールした領域の背景が不透明であるか、またはスクロールアイテムが発生します。The background of the scrolled area must be opaque, or scrolling artifacts will occur.

  • VisualScrollableAreaClip プロパティは、WPF がソフトウェアでレンダリングされている場合にのみ、スクロールを高速化します。The VisualScrollableAreaClip property accelerates scrolling only when WPF is rendering in software. たとえば、このような状況は、アプリケーションがリモートデスクトップ上で実行されている場合や、仮想マシンでローカルで実行されている場合に発生します。For example, this situation occurs when the application is running over Remote Desktop or running locally in a virtual machine.

  • スクロール動作は、ハードウェアでのレンダリング時に変更されません。The scrolling behavior is unchanged when rendering in hardware. スクロール動作の違いを回避するには、VisualScrollableAreaClip プロパティをハードウェアとソフトウェアの両方で有効にしておく必要があります。To prevent differences in scrolling behavior, you should keep the VisualScrollableAreaClip property enabled for both hardware and software.

  • 回転と傾斜の変換では、高速スクロールが無効になります。Rotate and skew transforms disable accelerated scrolling. スクロールした領域の上にあるスケール変換と水平方向または垂直方向の変換は正しく動作し、スクロールの加速を無効にしません。Scale transforms and horizontal or vertical translations above the scrolled region work correctly and do not disable scrolling acceleration.

  • アニメーションを使用して再描画するために、スクロール可能な領域のサブツリーまたはトリガー部分を変更すると、想定どおりに動作しますが、再描画領域の高速スクロールの利点は失われます。Changing the subtree or triggering parts of the scrollable area to redraw via animation behave as expected, but lose the benefit of accelerated scrolling for the redrawn area. スクロールが発生した同じフレーム内でスクロールされた領域を無効にするアニメーションは、この最適化の利点を排除します。Any animation that invalidates the scrolled area during the same frame in which scrolling occurs eliminates the benefit of this optimization.

  • VisualScrollableAreaClip 四角形は、ピクセル単位でスナップされます。The VisualScrollableAreaClip rectangle snaps inward to pixels. そのため、スクロールする四角形のスナップされたサイズは、設定したサイズ以下になります。Therefore, the snapped size of the scrolling rectangle is always less than or equal to the size you have set.

  • スナップを下にオフセットします。Offsets snap downward. これは、前のスナップされたオフセットと現在のスナップされたオフセットの差が常に整数のピクセル数であることを意味します。This means that the difference of the previous snapped offset and current snapped offset is always an integer number of pixels.

  • ヒットテストは、最大で1ピクセルまでオフにできます。Hit tests can be off by up to a pixel.

  • レイアウトの丸め処理は、スクロール可能な領域と境界ウィンドウのクライアント領域の端がピクセル境界にスナップされることを保証し、正しい配置になるため、有効にする必要があります。Layout rounding should be turned on, because it ensures that the edges of scrollable areas and the boundary window client area are snapped to pixel boundaries, resulting in correct alignment.

  • スクロールの加速は、レイヤードウィンドウでは機能しません。Scrolling acceleration does not work on layered windows. これは、AllowTransparency = = true、 = = none などのウィンドウを意味します。This means windows in which AllowTransparency == true, window.windowstyle == none, and so on.

  • スクロールの加速は、全ウィンドウのレンダリング中には発生しません。Scrolling acceleration does not occur during full-window rendering.

  • ウィンドウが2つのモニターをまたがっしている場合、スクロールの加速は機能しません。Scrolling acceleration does not work when the window straddles two monitors.

  • スクロールの加速は、スクロールした要素の親チェーンに中間レンダーターゲットが存在する場合には機能しません。Scrolling acceleration does not work in the presence of intermediate render targets in the parent chain of the scrolled element. これらの中間レンダーターゲットの一部を次の一覧に示します。The following list shows some of these intermediate render targets.

    • ClipsClips

    • 効果Effects

    • 図面ブラシDrawingBrushes

    • VisualBrushesVisualBrushes

    • OpacityMasksOpacityMasks

    • OpacityOpacity

  • 1フレームにつき1つのアクセラレータスクロールだけが発生します。Only one accelerated scroll can happen per frame. 加速スクロール領域は複数存在する場合がありますが、そのうちの1つだけが、フレーム中に高速スクロールを実行できます。There can be multiple accelerated scroll areas, but only one of them can perform an accelerated scroll during a frame. スクロールされる領域は不確定です。Which area is scrolled is indeterminate.

  • スクロールの加速は、コンテンツの残りの部分でスクロールされないスクロール領域 (z オーダー) 上のコンテンツをサポートします。Scrolling acceleration supports content above the scrolling region (in z-order) that is not scrolled with the rest of the content. システムは必要なすべてのダーティ領域を計算し、高速スクロールを完了しますが、誤ってスクロールされた部分を画面上の正しい位置に移動するために、ネットワーク上でいくつかの追加のビットマップを送信します。The system calculates all necessary dirty regions and completes the accelerated scroll, but it sends several additional bitmaps over the wire to move the unintentionally scrolled portion back to its correct position on screen.