5

WPFScrollViewerを使用していくつかのコントロールをホストしています。タッチデバイスのように、引っ張るとゆっくりと元の位置に戻るように相互作用させたいと思います。

スクロールバーがありません-このコードを使用してクリックアンドドラッグで手動でマウスをスクロールします:

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);

これを行う簡単な方法はありますか?現在、通常のスクロールテキストボックスのように機能し、通常の範囲外に移動したり、ゆっくりと元に戻ったりすることはありません。

4

1 に答える 1

1

タッチデバイスで作業している場合は、Microsoft SurfaceScrollViewer(http://msdn.microsoft.com/en-us/library/microsoft.surface.presentation.controls.surfacescrollviewer.aspx)を確認してください。すでにこの動作が組み込まれています。

タッチインタラクションを正しく行うのは難しいので、すでにそれを行っている人を見つけるのは簡単です。;-)

于 2012-04-29T22:13:59.850 に答える