在WPF窗口中显示正在运行的计时器

时间:2014-07-23 22:35:09

标签: c# .net wpf timer

我是WPF的新手,我正在开发一个需要在窗口上显示正在运行的计时器的项目。带有计时器的页面显示测试的详细信息,例如ID,测试名称,状态,开始时间,结束时间,blahblahblah ......

我真的希望我可以在页面上有一个计时器,告诉用户测试运行了多长时间。但是我没有在工具箱中找到一个可以显示正在运行的计时器的工具,而且我甚至不知道如何将移动的东西放在页面上......

你能告诉我如何在页面上添加一个正在运行的计时器吗?

此外,如果可以,我希望我的计时器可以从某个特定时间而不是00:00:00开始。我需要这个的原因是因为用户可以在测试运行一段时间后打开这个页面,并且计时器上显示的经过时间应该是(current_time - start_time)并从这里开始。

如果测试从上午7:00开始,并且用户在上午7:05打开页面并且测试仍在运行,则计时器应从00:05:00开始。

非常感谢,伙计们!希望这篇漫长的描述不会让你感到无聊:)

1 个答案:

答案 0 :(得分:9)

这是一个非常基本的例子。

using System.Windows.Threading;

namespace BasicTimer
{
    public partial class MainWindow : Window
    {
        DispatcherTimer t;
        DateTime start;
        public MainWindow()
        {
            InitializeComponent();
            t = new DispatcherTimer(new TimeSpan(0, 0, 0, 0, 50), DispatcherPriority.Background,
                t_Tick, Dispatcher.CurrentDispatcher); t.IsEnabled = true;
            start = DateTime.Now;
        }

        private void t_Tick(object sender, EventArgs e)
        {
            TimerDisplay.Text = Convert.ToString(DateTime.Now - start);
        }

MainWindow XAML

<Window x:Class="BasicTimer.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="100" Width="200">
    <Grid>
        <TextBlock x:Name="TimerDisplay" HorizontalAlignment="Left"/>
    </Grid>
</Window>