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