Files
1989-06-04 00:00:05 +09:00

52 lines
1.7 KiB
VB.net

Public Class MyScrollBar
Inherits Primitives.ScrollBar
'基础
Public Uuid As Integer = GetUuid()
'指向动画
Private Sub RefreshColor() Handles Me.IsEnabledChanged, Me.GotMouseCapture, Me.LostMouseCapture, Me.MouseEnter, Me.MouseLeave, Me.IsVisibleChanged
Try
'判断当前颜色
Dim NewOpacity As Double, NewColor As String, Time As Integer
If Not IsVisible Then
NewOpacity = 0
Time = 20 '防止错误的尺寸判断导致闪烁
NewColor = "ColorBrush4"
ElseIf IsMouseCaptureWithin Then
NewOpacity = 1
NewColor = "ColorBrush4"
Time = 50
ElseIf IsMouseOver Then
NewOpacity = 0.9
NewColor = "ColorBrush3"
Time = 130
Else
NewOpacity = 0.5
NewColor = "ColorBrush4"
Time = 180
End If
'触发颜色动画
If IsLoaded AndAlso AniControlEnabled = 0 Then '防止默认属性变更触发动画
'有动画
AniStart({
AaColor(Me, ForegroundProperty, NewColor, Time),
AaOpacity(Me, NewOpacity - Opacity, Time)
}, "MyScrollBar Color " & Uuid)
Else
'无动画
AniStop("MyScrollBar Color " & Uuid)
SetResourceReference(ForegroundProperty, NewColor)
Opacity = NewOpacity
End If
Catch ex As Exception
Log(ex, "滚动条颜色改变出错")
End Try
End Sub
End Class