アプリケーションを起動するかボタンがクリックされた瞬間に0からカウントを開始し、ユーザーが別のページをナビゲートした後もカウントを続けるタイマー(またはストップウォッチ)を追加する方法を探しています。アプリケーションの最後のページに経過した時間を表示します。DispatcherTimerクラスをいじっていますが、正直なところ、理解するのに苦労しています。どんな助けでも、あるいは正しい方向へのうなずきさえも大歓迎です!
質問する
558 次
2 に答える
1
時間を使用したい場合は、時間を表示するページに追加できます。
このコードをコンストラクターまたはタイマーをアクティブにする他の場所に追加します。( App.StartTime は、他の回答で書いたものと同じです)
DispatcherTimer timer = new DispatcherTimer();
timer.Tick +=
delegate(object s, EventArgs args)
{
TimeSpan time = (DateTime.Now - App.StartTime);
this.timenow.Text = string.Format("{0:D2}:{1:D2}:{2:D2}", time.Hours, time.Minutes, time.Seconds);
};
timer.Interval = new TimeSpan(0, 0, 1); // one second
timer.Start();
于 2013-01-16T20:08:32.580 に答える
1
アプリの起動時刻を保存し、保存された値から現在の時刻を差し引くだけです。
App.cs で、アプリケーションの起動時刻を保存します。
private static DateTime _starttime = DateTime.Now;
public static DateTime StartTime
{
get
{
return _starttime;
}
}
ページまたはアプリケーションが実行された現在の時刻を取得する必要がある場所では、保存されている時刻から現在の時刻を差し引くだけです。ボタンクリックハンドラーで使用しました。以下を参照してください。
private void timebutton_Click(object sender, RoutedEventArgs e)
{
TimeSpan time = (DateTime.Now - App.StartTime);
this.timenow.Text = string.Format("{0:D2}:{1:D2}:{2:D2}", time.Hours, time.Minutes, time.Seconds);
}
于 2013-01-16T12:04:43.570 に答える