上传公开代码
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
Public Class MyMenuItem
|
||||
Inherits MenuItem
|
||||
|
||||
Private Sub MyMenuItem_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
||||
If Icon IsNot Nothing Then
|
||||
Dim IconControl As Shapes.Path = GetTemplateChild("Icon")
|
||||
If IconControl IsNot Nothing Then IconControl.Data = (New GeometryConverter).ConvertFromString(Icon)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
'基础
|
||||
|
||||
Public Uuid As Integer = GetUuid()
|
||||
|
||||
'指向动画
|
||||
|
||||
Private Const AnimationTimeIn As Integer = 100
|
||||
Private Const AnimationTimeOut As Integer = 200
|
||||
Private ColorName As String
|
||||
Private Sub RefreshColor() Handles Me.MouseEnter, Me.MouseLeave, Me.IsEnabledChanged
|
||||
'判断当前颜色
|
||||
Dim BackName As String, ForeName As String
|
||||
Dim Time As Integer
|
||||
If Not IsEnabled Then
|
||||
BackName = "ColorBrushTransparent"
|
||||
ForeName = "ColorBrushGray5"
|
||||
Time = AnimationTimeOut
|
||||
ElseIf IsMouseOver Then
|
||||
BackName = "ColorBrush6"
|
||||
ForeName = "ColorBrush2"
|
||||
Time = AnimationTimeIn
|
||||
Else
|
||||
BackName = "ColorBrushTransparent"
|
||||
ForeName = "ColorBrush1"
|
||||
Time = AnimationTimeOut
|
||||
End If
|
||||
'重复性验证
|
||||
If ColorName = BackName Then Exit Sub
|
||||
ColorName = BackName
|
||||
'触发颜色动画
|
||||
If IsLoaded AndAlso AniControlEnabled = 0 Then '防止默认属性变更触发动画
|
||||
'有动画
|
||||
AniStart({
|
||||
AaColor(Me, BackgroundProperty, BackName, Time),
|
||||
AaColor(Me, ForegroundProperty, ForeName, Time)
|
||||
}, "MyMenuItem Color " & Uuid)
|
||||
Else
|
||||
'无动画
|
||||
AniStop("MyMenuItem Color " & Uuid)
|
||||
SetResourceReference(BackgroundProperty, BackName)
|
||||
SetResourceReference(ForegroundProperty, ForeName)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user