绑定事件到视图模型,图像旋转

时间:2013-07-10 13:47:23

标签: xaml mvvm

我希望有一个图像的旋转,但我不想在Codebehind中编码事件,而是在视图模型中。 到现在一切正常,但代码在CodeBehind ... (它基于this教程)

我试过

XAML:

 [...]
 ManipulationDelta="{Binding RotateManipulationDelta}"
 [...]
 <RotateTransform x:Name="{Binding RotateTransform}" />

视图模型:

private void RotateManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
    {
        // Alternatively, use Triangle Cosines Law.
        // It uses just one trigonometric function (Acos), but you first need to calculate the lengths of all sides.

        var x = this.RotateTransform.CenterX - e.Position.X;
        var y = this.RotateTransform.CenterY - e.Position.Y;

        double a1 = Math.Atan(y / x);
        double a2 = Math.Atan((e.Delta.Translation.Y - y) / (x - e.Delta.Translation.X));

        this.RotateTransform.Angle += a1 - a2;
    }

但是C#显然不知道“RotateTransform”或Method本身。 有没有可能这样做?我没有线索。 请尝试尽可能简单地解释它。我刚开始使用Windows Apps和XAML。 :d

我希望你能帮助我。

1 个答案:

答案 0 :(得分:0)

您可能希望查看类似Storyboarded animations for visual states或此XAML animation的内容。

我不明白你为什么要做这样的事情......你能给我们更多的信息吗?在C#中比在XAML中更容易实现。背后的代码就是做那些事情。