2017-12-04 9 views
-1

にストーリーボードとパスを使用してアニメーション化する方法 - このためだから、私はこのようなグリッドのまわりで私の長方形のボックスを移動しようとしていますC#の

enter image description here

を、私はストーリーボードを使用しています。

私はDoubleAnimationを使用して、私のクラスの1つでX軸とY軸のボックスを移動しています。私はMainWindowクラスからこのクラスを呼び出しています。

 //Code to move Boxes 1-4 to first grid point in their path 
     TranslateTransform moveTransform = new TranslateTransform(); 
     moveTransform.X = 0; 
     moveTransform.Y = 0; 
     x.RenderTransform = moveTransform; 


     Storyboard s = new Storyboard(); 


     DoubleAnimation Move1= new DoubleAnimation(); 

     Move1.From = 0; 
     Move1.To = xPosition; // calculate correct offset here 
     Move1.Duration = new Duration(TimeSpan.FromSeconds(hops)); 
     if (x==Box2) 
     { 
      Move1.BeginTime = TimeSpan.FromSeconds(5);//For Box 2, the first move will be across Y-Axis and hence X-Axis move will be delayed by 5 seconds. 
     } 
     else 
     { 
      Move1.BeginTime = TimeSpan.Zero; 
     } 

     Storyboard.SetTarget(Move1, x); 
     Storyboard.SetTargetProperty(Move1, new PropertyPath("(UIElement.RenderTransform).(X)")); 
     s.Children.Add(Move1); 

を私は道にがある知っている - しかし、すべての箱のために、と毎ターンのために、私はこのような等のオフセット値、開始時間、期間を割り当て、新しいダブルアニメーションを作成する必要がありますソースから宛先に到達するパスを定義しますが、どうすればよいか分かりません。また、私がここでやっていることが最適な方法かどうかは分かりません。

だから、私の質問は -

これを行うには良い方法は何ですか?どのようにしてアニメーションのパスを定義できますか?

私はC#の初心者ですので、これが愚かであれば気にしないでください。

ありがとうございました!

答えて

0

パスを使用せずにできました。

移動ごとに、私は新しいダブルアニメーションを作成しました。

だから左のために - 下 - 右の動き、私は再び

X軸、Y軸、X軸と3重のアニメーションを作成しました。

関連する問題