我使用WPF ScrollViewer來託管一些控件。我真的很喜歡它在觸摸設備上進行交互,當它拉得太遠時,它會緩慢地恢復到原位。有沒有簡單的方法來使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);
是否有一個簡單的方法來做到這一點?目前它只是像正常的滾動文本框一樣行事,既不會超出正常範圍,也不會緩慢回退。
見http://aniscrollviewer.codeplex.com/ - 我沒有檢查的代碼了,但它說,它擴展了標準'ScrollViewer'更新從動畫更新位置。 – ChrisF 2012-04-28 11:33:25
謝謝@ChrisF,但是這個例子只是平滑的滾動,並沒有給出任何類型的「touch over drag」交互,也沒有在其正常範圍內平滑地反彈: – kvanberendonck 2012-04-29 03:01:01
啊 - 你不能使用不同的緩動功能嗎? – ChrisF 2012-04-29 10:47:19