我正在寻找一种方法来添加一个计时器(或秒表),它将在应用程序启动或单击按钮的那一刻从 0 开始计数,并且即使在用户浏览不同页面后也会继续计数,然后能够显示应用程序的最后一页已经过去了多少时间。我一直在搞乱DispatcherTimer类,但老实说,我很难理解它。任何帮助,甚至是对正确方向的点头都将不胜感激!
问问题
558 次
2 回答
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 回答
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 回答