0

我在 WinPhone 应用程序的 Canvas 上有图像。我可以使用以下代码缩放和翻译图像:

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

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

如何使移动速度与图像大小无关?谢谢。

4

1 回答 1

0

为将来遇到相同问题的任何人添加答案。

随着图像大小的变化,捏合移动速度会随之增加或减少。为了弥补这一点并让图像以相同的速度不断移动,图像平移的量需要相对于缩放进行修改。

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

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

OP 通过调整它并乘以scaleImage.ScaleX它找到了解决方案,得到了所需的结果:

translateImage.X += ( e.DeltaManipulation.Translation.X * scaleImage.ScaleX);
于 2013-09-11T13:17:20.917 回答