Есть несколько вещей, которые вы могли бы сделать с этим. Кулак использует что-то вроде Environment.TickCount как человек here. Однако то, что, я думаю, может работать лучше, - использовать 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 будет увеличивать и отображать наши данные секундомера.
Наш стартовый обработчик позаботится о том, чтобы инициализировать/усовершенствовать наш 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();
}
интересно, так как эта страница указывает, что она существует - http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.startnew(v=VS.95).aspx –
@James Это действительно очень интересно. Либо эта страница находится там по ошибке, либо, может быть, она подходит к SL5. Этот пост предполагает, что вы можете ссылаться на dll WP7 и использовать этот класс секундомера. Однако я не пробовал. http://forums.silverlight.net/forums/p/207108/486425.aspx – Oskar
@James, @Oskar: Секундомер для Silverlight существует, но только для XNA Framework. См. Раздел «Информация о версии» вашей ссылки и сравните это с чем-то вроде System.Boolean: http://msdn.microsoft.com/en-us/library/system.boolean% 28v = VS.95% 29.aspx –