有一种简单的方法可以使ScrollViewer“充满弹性”吗?

时间:2012-04-28 04:25:28

标签: c# wpf animation touch

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

有一种简单的方法吗?目前它只是像普通的滚动文本框一样,不会超出正常范围,也不会慢慢缓解。

1 个答案:

答案 0 :(得分:1)

如果您正在使用Touch设备,请查看Microsoft SurfaceScrollViewer(http://msdn.microsoft.com/en-us/library/microsoft.surface.presentation.controls.surfacescrollviewer.aspx)。它已经内置了这种行为。

获得正确的触摸交互是棘手的,更容易找到已经完成它的其他人。 ; - )