2

パン (MouseDown、MouseMove、MouseUp) に使用する WPF scrollViewer があり、慣性を組み込んだ加速効果を含めたいと考えています。そのため、マウスがしきい値速度を超えて移動し、マウスを放した場合、パンは継続しますが、初期速度の関数として遅くなります。アイデア、考え、または例はありますか?

4

1 に答える 1

2

私は基本的にこれを以前に行い、ScrollViewerを見て始めましたが、最終的にはそれを捨てて、コンテンツの絶対配置のために子としてCanvasを持つViewboxを使用しました(スクロールと同様にズームもサポートしていましたが、基本的にDeepZoomでしたズーム用に画像をスケーリングしたため、右にズームするとピクセル化が発生しました)。マウス イベントからジェスチャーの方向と速度を決定するコードを記述し、これをスクロールの方向と速度に変換してから、スクロール可能なコンテンツ (Children コレクションにあった) の Canvas.Left および Canvas.Top プロパティをアニメーション化しました。 Viewbox の子キャンバスの) DoubleAnimation を使用します。それはうまくいきましたが、もっと良い方法があるかもしれません...Frame コントロールを介して WPF で DeepZoom をホストすることを提案するスレッド (ただし、私はそのようにはしません)。

編集: 基本的に、ScrollViewer はあまりにも制限的でした。ControlTemplate に入って ScrollBars への参照を直接取得したとしても、アニメーション化する必要があるのはこれらのスクロールバーの Thumb の位置であり、これが私ができないことがわかったものであると確信しています (それはほぼ3年前:)

于 2010-02-22T23:38:40.540 に答える