Hay algunas cosas que puede hacer con esto. El primer uso es algo parecido al Environment.TickCount como la persona here. Sin embargo, algo que creo que puede funcionar mejor es hacer uso de un DispatcherTimer.
Para configurar un DispatcherTimer para que funcione como un cronómetro, también necesitaremos un TimeSpan asociado que represente la hora en que se ejecuta. Podemos crear una instancia del DispatcherTimer y establecer el intervalo que mide, y el controlador para el evento 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);
}
En la interfaz de usuario se puede crear algo sencillo para iniciar y detener nuestra temporizador, así como mostrar los datos cronómetro:
<StackPanel>
<Button Content="Start" x:Name="uiStart" Click="OnStartClick" />
<Button Content="Stop" x:Name="uiStop" Click="OnStopClick" />
<TextBlock x:Name="uiDisplay"/>
</StackPanel>
Ahora, todo lo que queda es los controladores de eventos.
El controlador OnTimerTick aumentará y mostrará nuestros datos de cronómetro.
Nuestro controlador de inicio se encargará de inicializar/reactivar nuestro TimeSpan, mientras que el controlador de detención simplemente detendrá el 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();
}
interesante ya que esta página parece indicar que existe - http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.startnew(v=VS.95).aspx –
@James Eso es de hecho muy interesante. O bien esa página está allí por error, o tal vez está llegando a SL5. Esta publicación sugiere que podrías hacer referencia al dll WP7 y usar esa clase de cronómetro. No lo he intentado sin embargo. http://forums.silverlight.net/forums/p/207108/486425.aspx – Oskar
@James, @Oskar: existe cronómetro para Silverlight, pero solo para XNA Framework. Consulte la sección Información sobre la versión de su enlace y compárelo con algo parecido a System.Boolean: http://msdn.microsoft.com/en-us/library/system.boolean% 28v = VS.95% 29.aspx –