Il y a quelques choses que vous pourriez faire avec ceci. Le poing est quelque chose comme l'environnement.TickCount comme la personne here. Cependant, quelque chose que je pense peut fonctionner mieux est d'utiliser un DispatcherTimer.
Pour configurer un DispatcherTimer afin de fonctionner comme un chronomètre, nous avons également besoin d'un TimeSpan associé représentant l'heure à laquelle il est exécuté. Nous pouvons instancier le DispatcherTimer et définir l'intervalle auquel il est associé, ainsi que le gestionnaire de l'événement 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);
}
Dans l'interface utilisateur, nous pouvons créer quelque chose de simple pour démarrer et arrêter notre minuterie, ainsi que l'affichage des données du chronomètre:
<StackPanel>
<Button Content="Start" x:Name="uiStart" Click="OnStartClick" />
<Button Content="Stop" x:Name="uiStop" Click="OnStopClick" />
<TextBlock x:Name="uiDisplay"/>
</StackPanel>
Maintenant, tout ce qui reste est les gestionnaires d'événements.
Le gestionnaire OnTimerTick va incrémenter et afficher les données du chronomètre.
Notre gestionnaire de démarrage s'occupera de l'initialisation/de la réinitialisation de notre TimeSpan, tandis que le gestionnaire d'arrêt arrêtera simplement le 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();
}
intéressant puisque cette page semble indiquer qu'il existe - http://msdn.microsoft.com/fr-fr/library/system.diagnostics.stopwatch.startnew(v=VS.95).aspx –
@James C'est en effet très intéressant. Soit cette page est juste là par erreur, soit peut-être qu'elle arrive à SL5. Ce post suggère que vous pourriez référencer la DLL WP7 et utiliser cette classe Stopwatch. Je n'ai pas essayé cependant. http://forums.silverlight.net/forums/p/207108/486425.aspx – Oskar
@James, @Oskar: Chronomètre pour Silverlight existe, mais seulement pour le XNA Framework. Consultez la section Informations sur la version de votre lien et comparez-la avec quelque chose comme System.Boolean: http://msdn.microsoft.com/en-us/library/system.boolean% 28v = VS.95% 29.aspx –