C# 有没有一种简单的方法来制作ScrollViewer;蹦蹦跳跳的;?

C# 有没有一种简单的方法来制作ScrollViewer;蹦蹦跳跳的;?,c#,wpf,animation,touch,C#,Wpf,Animation,Touch,Im使用WPF ScrollViewer来承载一些控件。我真的希望它能像在触摸设备上一样进行交互,当你把它拉得太远时,它会慢慢地回到原位 它没有滚动条-我使用以下代码通过点击和拖动手动滚动鼠标: Point currentPoint = e.GetPosition(this); // Determine the new amount to scroll. Point delta = new Point(scrollStartPoint.X - currentPoint.X, scrollSta

Im使用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);
Point currentPoint=e.GetPosition(此);
//确定要滚动的新金额。
点增量=新点(scrollStartPoint.X-currentPoint.X,scrollStartPoint.Y-currentPoint.Y);
if(Math.Abs(delta.X)

有没有一个简单的方法可以做到这一点?目前,它就像一个普通的滚动文本框,既不会超出其正常范围,也不会缓慢后退。

如果您使用的是触摸设备,请查看Microsoft SurfaceScrollViewer()。它已经内置了这种行为


正确地进行触摸交互是一件棘手的事情,更容易找到其他已经做过的人。;-)

请看-我没有签出代码,但它声明它已扩展了标准的
ScrollViewer
,以从动画更新更新位置。谢谢@ChrisF,但该示例只是平滑滚动,并且不提供任何类型的“触摸-拖动”交互,也不会在正常范围内平稳反弹:|啊-你不能使用不同的缓解功能吗?我不知道如何缓解边界。不幸的是,它不是用于触摸设备,而是用于桌面。