2014-04-12 6 views
0

ScrollViewer 내의 요소가 뷰어의 가장자리를지나 드래그되었는지 여부를 감지하는 것이 가능한지 궁금합니다.ScrollViewer의 가장자리 끝 스크롤 감지

예를 들어 허용 된 것보다 더 많은 이미지를 드래그하면 이미지가 자동으로 ScrollViewer에 다시 배치되어 적어도 백엔드가 이미지/스크롤이 경계를지나 드래그되었음을 알 수 있음을 나타냅니다. 내가하고 싶은 일은 경계가 넘어 졌을 때를 감지 한 다음 사용자 활동을 스 와이프로 처리하고 표시된 항목을 다른 것으로 변경하는 것과 같은 작업을 수행하는 것입니다.

XAML 그림

<ScrollViewer x:Name="detailImageScroll" ZoomMode="Enabled"> 
    <Image x:Name="detailImage" Visibility="Collapsed" VerticalAlignment="Center" HorizontalAlignment="Center"/> 
</ScrollViewer> 

C#의 의사 그림 내가 지금까지 가지고 올 것을

SomeScrollManipulationEvent() 
{ 
    if detailImage.left < detailImageScroll.left 
    GoToPreviousImage() 
    else if detailImage.right > detailImageScroll.right 
    GoToNextImage() 
} 

조작이 ScrollViewers이나 그 이미지 내에서 가능하지 않다 적어도이다 ScrollViewer의 기능을 잃지 않고 확대 및 패닝.

제안 된 기능을 구현할 수 있습니까? 그렇다면 어떻게?

고마워요!

답변

0

실제로 플랫폼에 내장되어 있습니다. HorizontalSnapPointsTypeHorizontalSnapPointsAlignment 속성을 확인하십시오.

+0

흠, ScrollView를 수동으로 패닝하는 대신 스냅 포인트를 사용하여 뷰를 적절한 내용을 보여주는 위치로 스냅하는 것으로 보인다. ScrollViewer 내에서 단일 항목 (예 : 이미지)에 대해 계속 작동합니까? 명확히하기 위해 사용자가 ScrollViewer 경계를 넘어 이미지를 팬 할 때마다 사용자 지정 코드를 실행하기위한 이벤트 (또는 다른 디자인 패턴)를 받고 싶습니다. 제 경우에는 pannable 및 zoomable 이미지를 표시하는 방법을 찾고 있는데, 왼쪽 또는 오른쪽으로 "너무 많이"팬하면 프로그래밍 방식으로 적절한 이미지로 전환 할 수 있습니다. – Vectovox

+0

'ScrollViewer'를'FlipView'에 넣을 수 있습니다. 그것은 당신이 묘사하는 방식대로 작동합니다. –