Có một vài điều bạn có thể làm với điều này. Nắm tay được sử dụng một cái gì đó giống như Environment.TickCount giống như người here. Tuy nhiên, điều mà tôi nghĩ có thể hoạt động tốt hơn là sử dụng số DispatcherTimer.
Để thiết lập DispatcherTimer hoạt động giống như đồng hồ bấm giờ, chúng tôi cũng sẽ cần một TimeSpan liên quan đại diện cho thời gian nó được chạy. Chúng ta có thể khởi tạo DispatcherTimer và thiết lập khoảng thời gian mà nó xử lý, và trình xử lý cho sự kiện 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);
}
Trong giao diện người dùng chúng ta có thể tạo ra một cái gì đó đơn giản để bắt đầu và ngừng đếm thời gian của chúng tôi, cũng như hiển thị dữ liệu đồng hồ bấm giờ:
<StackPanel>
<Button Content="Start" x:Name="uiStart" Click="OnStartClick" />
<Button Content="Stop" x:Name="uiStop" Click="OnStopClick" />
<TextBlock x:Name="uiDisplay"/>
</StackPanel>
Bây giờ, tất cả những gì còn lại là xử lý sự kiện.
Trình xử lý OnTimerTick sẽ tăng và hiển thị dữ liệu đồng hồ bấm giờ của chúng tôi.
Trình xử lý bắt đầu của chúng tôi sẽ xử lý việc gây quỹ/tái cấp vốn cho TimeSpan của chúng tôi, trong khi trình xử lý Dừng sẽ chỉ dừng 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();
}
thú vị vì trang này dường như cho biết nó tồn tại - http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.startnew(v=VS.95).aspx –
@James Đó là thực sự rất thú vị. Hoặc là trang đó chỉ có lỗi, hoặc có thể nó đang đến với SL5. Bài đăng này gợi ý rằng bạn có thể tham khảo dll WP7 và sử dụng lớp Đồng hồ bấm giờ đó. Tôi đã không thử nó mặc dù. http://forums.silverlight.net/forums/p/207108/486425.aspx – Oskar
@James, @Oskar: Đồng hồ bấm giờ cho Silverlight không tồn tại, nhưng chỉ dành cho Khung công tác XNA. Xem phần Thông tin Phiên bản của liên kết của bạn và so sánh với thông tin như System.Boolean: http://msdn.microsoft.com/en-us/library/system.boolean% 28v = VS.95% 29.aspx –