1
我正在尝试创建地图应用程序,如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? – 2012-03-04 13:09:47