5

我使用 WPF 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);

是否有捷径可寻?目前,它就像一个普通的滚动文本框,既不会拉出正常范围,也不会慢慢放松。

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 回答