WPF にコントロールがあります (円を含むカスタム コントロールです)。
そして、60msごとに移動する必要があります。
「位置」の配列(2つの属性を持つクラス:XとY)があり、これを移動して移動します:
timer_tick()
{
myControl.Margin = new Thickness { Left = MyArray[i].X, Top = MyArray[i].Y};
i++;
}
グローバル変数で。
しかし、私はより良い方法でそれを行うことができますか? 次のようなものを使用:
public static void MoveTo(this Image target, double newX, double newY)
{
var top = Canvas.GetTop(target);
var left = Canvas.GetLeft(target);
TranslateTransform trans = new TranslateTransform();
target.RenderTransform = trans;
DoubleAnimation anim1 = new DoubleAnimation(top, newY - top, TimeSpan.FromMilliseconds(60));
DoubleAnimation anim2 = new DoubleAnimation(left, newX - left, TimeSpan.FromMilliseconds(60));
trans.BeginAnimation(TranslateTransform.XProperty,anim1);
trans.BeginAnimation(TranslateTransform.YProperty,anim2);
}
すべてのティックで?
ありがとうございました