我在WinPhone应用程序上的Canvas上有Image。 我可以缩放和翻译Image使用这段代码:
private void image_ManipulatioDelta(object sender, ManipulationDeltaEventArgs e)
{
//handle stretch and pinch gestures
if (e.DeltaManipulation.Scale.X != 0 && e.DeltaManipulation.Scale.Y != 0)
{
double scX = scaleImage.ScaleX * e.DeltaManipulation.Scale.X;
if (scX > 0)
{
scaleImage.ScaleX = scX;
}
double scY = scaleImage.ScaleY * e.DeltaManipulation.Scale.X;
if (scY > 0)
{
scaleImage.ScaleY = scY;
}
}
//handle pan gesture
translateImage.X += e.DeltaManipulation.Translation.X;
translateImage.Y += e.DeltaManipulation.Translation.Y;
}
但捏后图像移动速度增加。 拉伸后图像移动速度降低。
如何使移动速度与尺寸图像无关? 感谢。
答案 0 :(得分:0)
为将来遇到同样问题的人添加答案。
随着图像尺寸的改变,夹点移动速度随之增大或减小。 为了弥补这一点并使图像以相同的速度不断移动,图像转换的数量需要相对于缩放进行修改。
我建议将翻译除以比例因子scaleImage.ScaleX
translateImage.X += ( e.DeltaManipulation.Translation.X / scaleImage.ScaleX);
OP通过调整此问题并乘以scaleImage.ScaleX
得到所需结果来找到解决方案:
translateImage.X += ( e.DeltaManipulation.Translation.X * scaleImage.ScaleX);