【问题标题】:WindowsPhone7: How to animate position of UIElement with code?WindowsPhone7:如何使用代码为 UIElement 的位置设置动画?
【发布时间】:2011-12-10 22:38:27
【问题描述】:

看来应该这么简单。我已经阅读了数十个链接,但我无法为该位置设置动画。我相信到目前为止我能写的最接近的代码是这样的:

 Storyboard storyboard = new Storyboard();
 TranslateTransform trans = new TranslateTransform() { X = 1.0, Y = 1.0 };
        myCheckbox.RenderTransformOrigin = new Point(0.5, 0.5);
        myCheckbox.RenderTransform = trans;

        DoubleAnimation moveAnim = new DoubleAnimation();
        moveAnim.Duration = TimeSpan.FromMilliseconds(1200);
        moveAnim.From = -1;
        moveAnim.To = 1;
        Storyboard.SetTarget(moveAnim, myCheckbox);
        Storyboard.SetTargetProperty(moveAnim, new PropertyPath("(UIElement.RenderTransform).(TranslateTransform.X)"));
        storyboard.Completed += new System.EventHandler(storyboard_Completed);
        storyboard.Children.Add(moveAnim);
        storyboard.Begin();

不会抛出任何错误。 完成回调确实被调用。 如果我以类似的方式对不透明度进行动画处理,则效果很好。

如何使用代码简单地为 UIElement 的位置设置动画??

【问题讨论】:

  • 动画从 -1 到 +1 的翻译几乎无法察觉。你试过更大的数字吗?

标签: c# windows-phone-7 animation uielement


【解决方案1】:

xyzzer 的评论是正确的。造成混淆的原因是RenderTransformOrigin 的坐标相对于元素使用 (0,1)。实际的变换(例如TranslateTransform)使用像素作为单位。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-18
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多