提高移动速度缩放后的图像

时间:2013-09-11 12:17:04

标签: c# silverlight windows-phone-7 windows-phone-8 windows-phone

我在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;
}

但捏后图像移动速度增加。 拉伸后图像移动速度降低。

如何使移动速度与尺寸图像无关? 感谢。

1 个答案:

答案 0 :(得分:0)

为将来遇到同样问题的人添加答案。

随着图像尺寸的改变,夹点移动速度随之增大或减小。 为了弥补这一点并使图像以相同的速度不断移动,图像转换的数量需要相对于缩放进行修改。

我建议将翻译除以比例因子scaleImage.ScaleX

translateImage.X += ( e.DeltaManipulation.Translation.X / scaleImage.ScaleX);

OP通过调整此问题并乘以scaleImage.ScaleX得到所需结果来找到解决方案:

translateImage.X += ( e.DeltaManipulation.Translation.X * scaleImage.ScaleX);