Bununla ilgili yapabileceğiniz birkaç şey var. Yumruk, here kişisi gibi Environment.TickCount gibi bir şey kullanır. Ancak, daha iyi çalışabileceğini düşündüğüm bir şey, DispatcherTimer'dan yararlanmaktır.
Bir kronometre gibi çalışmak için bir DispatcherTimer ayarlamak için, çalıştırıldığı zamanı gösteren ilişkili bir TimeSpan'a da ihtiyacımız var. DispatcherTimer'ı başlatabilir ve zaman aralığını ve Tick olayının işleyicisini ayarlayabiliriz. Biz kronometre verilerini başlatmak ve bizim sayacı durdurmak için basit bir şey yaratmak, hem de görüntüleyebilir arayüzünde
DispatcherTimer _timer;
TimeSpan _time;
public Page()
{
InitializeComponent();
_timer = new DispatcherTimer();
_timer.Interval = new TimeSpan(0, 0, 0, 0, 10);
_timer.Tick += new EventHandler(OnTimerTick);
}
:
Şimdi
<StackPanel>
<Button Content="Start" x:Name="uiStart" Click="OnStartClick" />
<Button Content="Stop" x:Name="uiStop" Click="OnStopClick" />
<TextBlock x:Name="uiDisplay"/>
</StackPanel>
, tüm kalan olay işleyicileri olduğunu.
OnTimerTick işleyicisi kronometre verimizi artıracak ve gösterecektir.
Başlatma işleyicimiz, TimeSpan'ımızı başlatma/yenileme işlemlerini gerçekleştirirken, Stop işleyicisi DispatcherTimer'i durdurur.
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();
}
bu sayfayı ilginç bulduğu için görünüyor - http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.startnew(v=VS.95).aspx –
@James This is gerçekten çok ilginç. Ya bu sayfa sadece hatayla ya da belki SL5'e geliyor. Bu gönderi, WP7 dll'ye referans gösterebileceğinizi ve bu Kronometre sınıfını kullanabileceğinizi gösterir. Yine de denemedim. http://forums.silverlight.net/forums/p/207108/486425.aspx – Oskar
@James, @Oskar: Silverlight için kronometre var, ancak sadece XNA Framework için. Bağlantınızın Sürüm Bilgileri bölümüne bakın ve bunu System.Boolean: http://msdn.microsoft.com/en-us/library/system gibi bir yöntemle karşılaştırın.boolean% 28v = VS.95% 29.aspx –