我有一个用于Panning(Mousedown,Mousemove,MouseUp)的WPF滚动浏览器,并且我想包括一种加速效应,并结合惯性。因此,如果鼠标的移动超出阈值速度,我释放了鼠标,它将继续pan缩,但会根据初始速度的函数减速。有什么想法,想法或例子吗?

有帮助吗?

解决方案

我以前已经做到了这一点,然后开始查看Scrollviewer,但最终将其扔掉,并使用了一个用画布作为孩子的视图框来绝对定位(我支持Zoom Aswel作为Scroll,它基本上是 deepzoom 没有缩放图像以进行缩放,因此在放大时会像素化。我编写了用于确定鼠标事件的手势方向和手势的速度的代码,并将其转换为滚动方向和速度,然后对Canvas.Left和Canvas.top属性。 Viewbox的儿童画布)带有双向。它运行良好,但是有更好的方法...这是 一个线程建议通过框架控件在WPF中托管DeepZoom(尽管我不会那样做)。

编辑:基本上,ScrollViewer太过限制了。即使您进入ControlTemplate并直接获得对滚动条的引用,您也需要动画这些滚动条的拇指位置,我很确定这就是我发现我无法做的(那是我的)大约3年前:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top