private void moveTo(Point deskPoint, Control ell, double space) //deskPoint: 控件要移動到的位置 , ell :你要移動的空間 , space : 設置移動的時間片(關系到控件移動的速度) { Point curPoint = new Point(); curPoint.X = Canvas.GetLeft(ell); curPoint.Y = Canvas.GetTop(ell); Storyboard storyboard = new Storyboard(); //創建Storyboard對象 double lxspeed = space, lyspeed = space; //設置X方向 / Y方向 移動時間片 //創建X軸方向動畫 DoubleAnimation doubleAnimation = new DoubleAnimation( Canvas.GetLeft(ell), deskPoint.X, new Duration(TimeSpan.FromMilliseconds(lxspeed)) ); Storyboard.SetTarget(doubleAnimation, ell); Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("(Canvas.Left)")); storyboard.Children.Add(doubleAnimation); //創建Y軸方向動畫 doubleAnimation = new DoubleAnimation( Canvas.GetTop(ell), deskPoint.Y, new Duration(TimeSpan.FromMilliseconds(lyspeed)) ); Storyboard.SetTarget(doubleAnimation, ell); Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("(Canvas.Top)")); storyboard.Children.Add(doubleAnimation); //動畫播放 storyboard.Begin(); }
【轉】https://blog.csdn.net/chr23899/article/details/38853417