Есть несколько вещей, которые вы можете сделать с этим. Во-первых, используйте что-то вроде Environment.TickCount, например, человека здесь . Однако кое-что, что я думаю, может работать лучше - использовать DispatcherTimer .
Чтобы настроить DispatcherTimer для работы в качестве секундомера, нам также потребуется соответствующий TimeSpan, представляющий время его запуска. Мы можем создать экземпляр DispatcherTimer и установить интервал времени, в котором он установлен, и обработчик события Tick.
DispatcherTimer _timer;
TimeSpan _time;
public Page()
{
InitializeComponent();
_timer = new DispatcherTimer();
_timer.Interval = new TimeSpan(0, 0, 0, 0, 10);
_timer.Tick += new EventHandler(OnTimerTick);
}
В пользовательском интерфейсе мы можем создать что-то простое для запуска и остановки нашего таймера, а также отображать данные секундомера:
<StackPanel>
<Button Content="Start" x:Name="uiStart" Click="OnStartClick" />
<Button Content="Stop" x:Name="uiStop" Click="OnStopClick" />
<TextBlock x:Name="uiDisplay"/>
</StackPanel>
Теперь все, что осталось, - это обработчики событий.
Обработчик OnTimerTick будет увеличивать и отображать данные нашего секундомера.
Наш обработчик Start позаботится об инициализации / реинициализации нашего TimeSpan, а обработчик Stop просто остановит DispatcherTimer.
void OnTimerTick(object sender, EventArgs e)
{
_time = _time.Add(new TimeSpan(0, 0, 0, 0, 10));
display.Text = _time.ToString();
}
private void OnStartClick(object sender, RoutedEventArgs e)
{
_time = new TimeSpan(0,0,0,0,0);
_timer.Start();
}
private void OnStopClick(object sender, RoutedEventArgs e)
{
_timer.Stop();
}