有没有一种简单的方法可以使ScrollViewer“有弹性”
本文关键字:有弹性 可以使 方法 ScrollViewer 简单 一种 有没有 | 更新日期: 2023-09-27 18:32:35
我使用 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);
有没有简单的方法可以做到这一点?目前,它只是像一个普通的滚动文本框,既不会超出其正常范围,也不会慢慢放松。
如果您正在使用触摸设备,请查看 SurfaceScrollViewer (http://msdn.microsoft.com/en-us/library/microsoft.surface.presentation.controls.surfacescrollviewer.aspx) Microsoft。它已经内置了这种行为。
正确进行触摸交互是很棘手的,更容易找到已经完成的其他人。