私はいくつかのコントロールをホストするためにWPF ScrollViewerを使用しています。私はあなたがそれをあまりにも遠くに引っ張ると、それがゆっくりと元気に戻っていくタッチデバイスのようにやりとりするのが本当に好きです。ScrollViewerを「バウンシー」にする簡単な方法はありますか?
これは、スクロールバーを持っていない - 私は手動でマウスがこのコードを使用してクリックし、ドラッグしてスクロールを持っている:
Point currentPoint = e.GetPosition(this);
// Determine the new amount to scroll.
Point delta = new Point(scrollStartPoint.X - currentPoint.X, scrollStartPoint.Y - currentPoint.Y);
if (Math.Abs(delta.X) < PixelsToMoveToBeConsideredScroll &&
Math.Abs(delta.Y) < PixelsToMoveToBeConsideredScroll)
return;
scrollTarget.X = scrollStartOffset.X + delta.X;
scrollTarget.Y = scrollStartOffset.Y + delta.Y;
// Scroll to the new position.
sv.ScrollToHorizontalOffset(scrollTarget.X);
sv.ScrollToVerticalOffset(scrollTarget.Y);
はこれを行う簡単な方法はありますか?現在のところ、通常のスクロールテキストボックスのように機能し、通常の範囲外に引っ張ったり、ゆっくりと戻ったりすることもありません。
http://aniscrollviewer.codeplex.com/を参照してください。私はコードをチェックアウトしていませんが、標準の 'ScrollViewer'を拡張してアニメーションアップデートからの位置を更新しています。 – ChrisF
ありがとう@ChrisFしかし、その例は滑らかなスクロールだけであり、どんなタイプの「タッチオーバードラッグ」のやり取りを与えたり、スムーズに通常の範囲内に戻ることはありません。 – kvanberendonck
ああ - 別のイージー機能を使用できませんか? – ChrisF