系统相关
首页 > 系统相关> > Windows Phone7:如何用代码为UIElement的位置设置动画?

Windows Phone7:如何用代码为UIElement的位置设置动画?

作者:互联网

看起来应该是如此简单.我已经阅读了数十个链接,但无法获得任何动画效果.我相信到目前为止我能写的最接近的代码是:

 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的位置设置动画?

解决方法:

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

标签:uielement,animation,windows-phone-7,c
来源: https://codeday.me/bug/20191202/2084999.html