2011-04-01 2 views
1

고정 된 높이의 ScrollViewer에 래핑 된 텍스트를 표시하는 응용 프로그램이 있습니다. HorizontalScrollBarVisibility를 Disabled로 설정하고 VerticalScrollBarVisibility를 Auto로 설정했습니다.WP7 ScrollViewer Windows에서의 Snap-Back 및 Auto scrollbar 가시성 문제 전화

유용성 문제는 다음과 같습니다. 콘텐츠가 ScrollViewer보다 작 으면 자동으로 설정되어 있음에도 불구하고 콘텐츠가 계속 스크롤되어 끝까지 스크롤되거나 부분을 숨길 수 있습니다 텍스트의 ScrollViewer가 전체 내용이 해당 범위 안에 들어갈 때 스크롤을 허용하지 않기를 바란다. 적어도 스크롤을 너무 많이 올리면 항상 내용을 다시 볼 수 있어야합니다.

두 번째로 콘텐츠가 스크롤 될 때 가끔씩 끝까지 붙어 오버 스크롤에서 "뒤로 젖히지"않습니다. 예를 들어 내용이 ScrollViewer에 완전히 들어 맞고 텍스트를 손가락 위나 아래로 드래그하면 텍스트가 ScrollViewer의 위쪽이나 아래쪽으로 가려져 뒤집히지 않습니다. 그러나 ScrollViewer의 컨텐트 외부에서 시작하여 손가락을 위로 드래그하면 양쪽 끝을지나 스크롤하면 스냅됩니다. 나는 "스냅 백"행동이 당신이 그 내용을 끈 지 또는 그 내용을 벗어나서 일어나길 원합니다. 그게 가능하니?

답변

2

첫 번째 문제 : 콘텐츠가 스크롤 뷰어의 필요성을 보증하기에 충분하지 않은 경우 하나에 넣지 마십시오. 내용의 크기가 변경되면 내용의 볼륨이 유효 할 때만 스크롤 막대를 활성화하십시오.

두 번째 문제를 재현하는 방법을 제공 할 수 있습니까?

+0

두 번째 제안 사항의 양식을 사용 중입니다. 즉, 내용이 너무 커서 스크롤이 필요하지 않은 경우 VerticalScrollBarVisibility를 Disabled로 설정합니다. 그러나 두 번째 문제는 여전히 남아 있습니다. TextWrapping이 켜져있는 TextBlock과 같은 단순한 컨트롤에는 "붙어 있지"않지만 WP7 용 Silverlight Toolkit의 WrapPanel 인 경우에만 적용됩니다. WrapPanel의 VerticalAlignment가 Stretch가 아닌 "Top"으로 설정되어 있으므로 빈 공간을 "내용"으로 간주하지 않는다는 것을 알고 있습니다. –

+0

아하! scrollviewer의 내용에있는 일부 컨트롤이 ManipulatingCompleted RoutedEvents를 구독하고 e.Handled = true로 설정되어 ScrollViewer에서 가져 오지 못했음을 의미합니다. –