0

アプリケーションを起動するかボタンがクリックされた瞬間に0からカウントを開始し、ユーザーが別のページをナビゲートした後もカウントを続けるタイマー(またはストップウォッチ)を追加する方法を探しています。アプリケーションの最後のページに経過した時間を表示します。DispatcherTimerクラスをいじっていますが、正直なところ、理解するのに苦労しています。どんな助けでも、あるいは正しい方向へのうなずきさえも大歓迎です!

4

2 に答える 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 に答える