C# 如何在Windows Phone 7.1上添加计时器?

C# 如何在Windows Phone 7.1上添加计时器?,c#,windows-phone-7.1,C#,Windows Phone 7.1,我正在寻找一种添加计时器(或秒表)的方法,该计时器从应用程序启动或单击按钮时开始从0开始计数,即使用户浏览了不同的页面,也会继续计数,然后能够显示应用程序最后一页经过了多少时间。我一直在课堂上胡闹,但老实说,我很难理解它。任何帮助,甚至向正确的方向点头,都将不胜感激 您只需存储应用程序启动的时间,然后从存储的值中减去当前时间即可 在App.cs中存储应用程序启动的时间: private static DateTime _starttime = DateTime.Now; pub

我正在寻找一种添加计时器(或秒表)的方法,该计时器从应用程序启动或单击按钮时开始从0开始计数,即使用户浏览了不同的页面,也会继续计数,然后能够显示应用程序最后一页经过了多少时间。我一直在课堂上胡闹,但老实说,我很难理解它。任何帮助,甚至向正确的方向点头,都将不胜感激

您只需存储应用程序启动的时间,然后从存储的值中减去当前时间即可

在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);
    }

如果你想使用时间,你可以在显示时间的页面上添加一个

将此代码添加到构造函数或其他要激活计时器的位置。(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();