Timer.xaml.vb 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. Imports System.Windows.Threading
  2. Public Class Timer
  3. '声明
  4. Public Event Tick() '自定义事件
  5. Public Timer As New DispatcherTimer() '时钟
  6. Public TimerLoaded As Boolean = False '是否已经加载过了
  7. '自定义属性
  8. Private _Interval As Integer = 1000 '执行间隔
  9. Public Property Interval As Integer
  10. Get
  11. Try
  12. NameShow.Content = If(Me.Name.StartsWith("Timer") Or Me.Name.StartsWith("timer"), Me.Name.Remove(0, 5), Me.Name)
  13. Catch ex As Exception
  14. NameShow.Content = Me.Name
  15. End Try
  16. Return _Interval
  17. End Get
  18. Set(ByVal value As Integer)
  19. _Interval = value
  20. Timer.Interval = TimeSpan.FromMilliseconds(_Interval) '设置时钟Interval
  21. TimeShow.Content = If(_Interval < 11, "MAX", Interval) '设置显示的Interval(由于每秒最多执行64次,故设置10及以下显示MAX)
  22. End Set
  23. End Property
  24. '默认属性
  25. Private Sub Timer_IsEnabledChanged(ByVal sender As Object, ByVal e As System.Windows.DependencyPropertyChangedEventArgs) Handles Me.IsEnabledChanged
  26. Timer.IsEnabled = Me.IsEnabled '修改时钟Enabled
  27. If Me.IsEnabled Then '修改显示颜色
  28. Me.Background = New MyColor(Color.FromArgb(160, 85, 164, 255)) '蓝色
  29. Me.BorderBrush = New MyColor(Color.FromArgb(220, 10, 120, 255))
  30. Else
  31. Me.Background = New MyColor(Color.FromArgb(160, 255, 20, 0)) '红色
  32. Me.BorderBrush = New MyColor(Color.FromArgb(220, 255, 20, 0))
  33. End If
  34. End Sub
  35. '自定义事件
  36. ''' <summary>
  37. ''' 重新开始本次计时。
  38. ''' </summary>
  39. ''' <remarks></remarks>
  40. Public Sub Reset()
  41. Timer.Stop()
  42. Timer.Start()
  43. Timer.IsEnabled = Me.IsEnabled '修改时钟Enabled
  44. End Sub
  45. '默认事件
  46. Private Sub Timer_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded
  47. If TimerLoaded Then Exit Sub
  48. '初始化时钟
  49. TimerLoaded = True
  50. Timer.Interval = TimeSpan.FromMilliseconds(_Interval)
  51. AddHandler Timer.Tick, Sub() RaiseEvent Tick()
  52. Timer.Start()
  53. Timer.IsEnabled = Me.IsEnabled '修改时钟Enabled
  54. '修改Name显示
  55. Try
  56. NameShow.Content = If(Me.Name.StartsWith("Timer") Or Me.Name.StartsWith("timer"), Me.Name.Remove(0, 5), Me.Name)
  57. Catch ex As Exception
  58. NameShow.Content = Me.Name
  59. End Try
  60. End Sub
  61. End Class