WP7지도와 같은지도 응용 프로그램을 만들려고합니다. WPF에서는 MatrixTransform을 통해지도 캔버스 제스처를 관리하는 것이 간단하지만 WP7의 MatrixTransform 버전은 기능이 적습니다. 에지도와 같은 응용 프로그램에서 ManipulationDelta를 어떻게 관리 할 수 있습니까?
확대 및 축소 : 는 모든 ManipulationDelta 이벤트를 관리하는 방법에 어떤 패턴있다. 지금은 그런 식으로합니다
var maxScale = Math.Max( args.DeltaManipulation.Scale.X, args.DeltaManipulation.Scale.Y); if (Math.Abs(maxScale - 0) > 0.0001 && ((maxScale < 1 && _scale.ScaleX > MIN_SCALE) || (maxScale > 1 && _scale.ScaleX < MAX_SCALE))) { _scale.ScaleX *= maxScale; _scale.ScaleY *= maxScale; }
곳 _scale = 새로운 ScaleTransform(); 캔버스의 위치를 관리하기 위해 개선되어야합니다.
손가락으로지도 이동. 첫 번째 단계까지 그것은 보이는 것 같은 :
_translation.X += args.DeltaManipulation.Translation.X * _scale.ScaleX; _translation.Y += args.DeltaManipulation.Translation.Y * _scale.ScaleX;
곳 _translation = 새 TranslateTransform();
- 는 팬, 핀치 후 일부 동적 확인하고 스트레치
없는 현재의 구현,하지만 난 더 자연스러운 방법으로 제스처 "계속"몇 가지 코드를 추가 참고 : ManipulationCompleted에서 찾고 있어요. 나는이 기능을 관리하는 일반적인 솔루션을 찾고 있어요
은, 내 방식이 잘못되지 ManipulationDelta
프레임 워크와 함께 제공되는 MapControl을 사용하지 않는 이유는 무엇입니까? –