2012-04-28 60 views
5

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

是否有一個簡單的方法來做到這一點?目前它只是像正常的滾動文本框一樣行事,既不會超出正常範圍,也不會緩慢回退。

+0

見http://aniscrollviewer.codeplex.com/ - 我沒有檢查的代碼了,但它說,它擴展了標準'ScrollViewer'更新從動畫更新位置。 – ChrisF 2012-04-28 11:33:25

+0

謝謝@ChrisF,但是這個例子只是平滑的滾動,並沒有給出任何類型的「touch over drag」交互,也沒有在其正常範圍內平滑地反彈: – kvanberendonck 2012-04-29 03:01:01

+0

啊 - 你不能使用不同的緩動功能嗎? – ChrisF 2012-04-29 10:47:19

回答

相關問題