Imports System.Windows.Threading Public Class Timer '声明 Public Event Tick() '自定义事件 Public Timer As New DispatcherTimer() '时钟 Public TimerLoaded As Boolean = False '是否已经加载过了 '自定义属性 Private _Interval As Integer = 1000 '执行间隔 Public Property Interval As Integer Get Try NameShow.Content = If(Me.Name.StartsWith("Timer") Or Me.Name.StartsWith("timer"), Me.Name.Remove(0, 5), Me.Name) Catch ex As Exception NameShow.Content = Me.Name End Try Return _Interval End Get Set(ByVal value As Integer) _Interval = value Timer.Interval = TimeSpan.FromMilliseconds(_Interval) '设置时钟Interval TimeShow.Content = If(_Interval < 11, "MAX", Interval) '设置显示的Interval(由于每秒最多执行64次,故设置10及以下显示MAX) End Set End Property '默认属性 Private Sub Timer_IsEnabledChanged(ByVal sender As Object, ByVal e As System.Windows.DependencyPropertyChangedEventArgs) Handles Me.IsEnabledChanged Timer.IsEnabled = Me.IsEnabled '修改时钟Enabled If Me.IsEnabled Then '修改显示颜色 Me.Background = New MyColor(Color.FromArgb(160, 85, 164, 255)) '蓝色 Me.BorderBrush = New MyColor(Color.FromArgb(220, 10, 120, 255)) Else Me.Background = New MyColor(Color.FromArgb(160, 255, 20, 0)) '红色 Me.BorderBrush = New MyColor(Color.FromArgb(220, 255, 20, 0)) End If End Sub '自定义事件 ''' ''' 重新开始本次计时。 ''' ''' Public Sub Reset() Timer.Stop() Timer.Start() Timer.IsEnabled = Me.IsEnabled '修改时钟Enabled End Sub '默认事件 Private Sub Timer_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded If TimerLoaded Then Exit Sub '初始化时钟 TimerLoaded = True Timer.Interval = TimeSpan.FromMilliseconds(_Interval) AddHandler Timer.Tick, Sub() RaiseEvent Tick() Timer.Start() Timer.IsEnabled = Me.IsEnabled '修改时钟Enabled '修改Name显示 Try NameShow.Content = If(Me.Name.StartsWith("Timer") Or Me.Name.StartsWith("timer"), Me.Name.Remove(0, 5), Me.Name) Catch ex As Exception NameShow.Content = Me.Name End Try End Sub End Class