実行時にWPFシェイプを移動する方法がわかりません。具体的には、楕円を動かしたいです。
これが私の現在のコードです:
private void Tick(object sender, EventArgs e)
{
Point ballLocation = ball.TransformToAncestor(Application.Current.MainWindow).Transform(new Point(0, 0));
//MessageBox.Show(ballLocation.ToString());
Canvas.SetLeft(ball, ballLocation.X + 5);
InvalidateVisual();
}
タイマーが刻むたびに(1秒)、ボールはx方向に5ピクセル移動するはずですよね?これが間違っている場合、楕円の現在の場所を取得するにはどうすればよいですか。また、新しい場所に設定するにはどうすればよいですか。たぶん、InvalidateVisualに問題がありますか?基本的にコントロールを塗り替えると思います。それが間違っている場合は、楕円を塗り直して、位置の変化を表示するにはどうすればよいですか。私もball.InvalidateVisual()を試しましたが、機能しませんでした。
これが私がタイマーを作成して開始する方法です:
var timer = new DispatcherTimer {IsEnabled = true};
timer.Tick += Tick;
timer.Interval = new TimeSpan(0, 0, 1);
timer.Start();