我正在尝试创建像WP7地图这样的地图应用程序。我知道在WPF中通过MatrixTransform管理地图画布手势很简单,但WP7的MatrixTransform版本功能较少。 是否有任何模式如何管理所有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 = new ScaleTransform();并且必须改进以管理画布的位置
用手指移动地图。第一步看起来像:
_translation.X += args.DeltaManipulation.Translation.X
* _scale.ScaleX;
_translation.Y += args.DeltaManipulation.Translation.Y
* _scale.ScaleX;
其中_translation = new TranslateTransform();
目前没有实现,但我正在考虑ManipulationCompleted,其中添加一些代码以更自然的方式“继续”手势。
我正在寻找管理此功能的典型解决方案,可能是我的方式错了而不是通过ManipulationDelta
答案 0 :(得分:0)
经过一番研究后,我决定使用此行为添加多点触控http://gallery.expression.microsoft.com/MultiTouch/
如果出现问题我可以看到反映的代码并创建类似的东西