DoubleAnimation
上
Canvas.Left
控件的属性,该控件将值从当前值设置为100,并通过调用
BeginAnimation
在代码隐藏的控件上。
void Animate(Control someControlOnCanvas, int newX){
var canvasLeftAnimation = new DoubleAnimation();
canvasLeftAnimation.To = newX;
canvasLeftAnimation.FillBehavior = FillBehavior.Stop;
canvasLeftAnimation.Duration = new Duration(TimeSpan.FromSeconds(4));
canvasLeftAnimation.Completed += (s, e) => {
Canvas.SetLeft(targetButton, x);
};
someControlOnCanvas.BeginAnimation(Canvas.LeftProperty, canvasLeftAnimation);
}
Animate(somethingToMove, 100);
比如说在动画进行到一半的时候——在2秒的时候——我需要取消当前的动画,用新的动画开始一个新的动画
To
位置
From
位置会在现在的任何地方)这是第一个动画的位置
将
如果我尝试获取当前的Left值,它就是动画值50。如果我尝试获取基值,它就是动画开始的地方,它是零,因为直到完成处理程序触发它才正式更新。
我的想法是:
-
-
得到它是
价值
-
至
值加100
我被困的是得到1。
……还是我做错了?