2012-04-28 4 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

+0

고마워요. @ChrisF하지만이 예제는 부드러운 스크롤링 뿐이며, 모든 유형의 "터치 오버 드래그"상호 작용을 제공하지 않으며 자연스럽게 정상 범위 내로 돌아옵니다. – kvanberendonck

+0

아 - 다른 여유 기능을 사용할 수 없습니까? – ChrisF

답변

관련 문제