WPFについて質問があります。XAMLを使用せずに、すべてCode(C#)で記述します。
小さなプログラムの説明:私は携帯電話のセンサーからの値になります。wpfプログラムでは、この値を使用して、キャンバス上の楕円でさまざまなアニメーションを作成します。
サーバークラスにhttpサーバーがあり、値を取得して変数に書き込みます。MainWindow()で呼び出すと、DoubleAnimationのDurationが表示されます。
public MainWindow()
{
InitializeComponent();
Canvas myPanel = new Canvas();
...
Server server = new Server();
server.GetData();
float xxx ;
xxx = server.duration;
...
GetData()-サーバーへのhttpリクエスト、可変期間への書き込みレスポンスを作成します。server.durationを介して取得するよりも;
それは完璧に動作します。
これが私のダブルアニメーションです:
DoubleAnimation anim = new DoubleAnimation();
anim.Duration = new Duration(TimeSpan.FromSeconds(xxx));
anim.From = 10;
anim.To = 0;
anim.AutoReverse = true;
anim.RepeatBehavior = RepeatBehavior.Forever;
MainWindow()の最後に、アニメーション付きのオブジェクトをCanvasに追加します。
myObject.BeginAnimation(Ellipse.OpacityProperty, anim);
myPanel.Children.Add(myObject);
this.Content = myPanel;
それは機能しますが、サーバーが新しい期間の値をもたらすときに、期間を更新する必要があります。
質問:新しい期間の値になったときにDoubleAnimationを変更するにはどうすればよいですか?
他の言葉での質問: server.GetData();をループするにはどうすればよいですか?期間の値を更新するには?
他の言葉での質問2: Canvasは自分自身を自動更新していますか?はいの場合、MainWindow()で自動server.GetData()を呼び出しますか?
I would be very grateful for any examples and descriptions! Thanks!