level 6
mscdld
楼主
Imports System.Windows.Threading
Imports System.Media
Public Class Splash
Private AniC As Short = 145
Private S1 As GradientStop = New GradientStop
Private S2 As GradientStop = New GradientStop
Private S3 As GradientStop = New GradientStop
Private AniT As DispatcherTimer = New DispatcherTimer
Private TextFillCol As GradientStopCollection = New GradientStopCollection
Private TextFill As GradientBrush = New LinearGradientBrush(TextFillCol, -90)
Private Sub Splash_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
AddHandler AniT.Tick, AddressOf TextRefresh
S1.Offset = 0
S2.Offset = 0
S3.Offset = 0
S1.Color = Color.FromArgb(255, 255, 255, 255)
S2.Color = Color.FromArgb(255, 255, 255, 255)
S3.Color = Color.FromArgb(255, 255, 255, 255)
TextFillCol.Add(S1)
TextFillCol.Add(S2)
TextFillCol.Add(S3)
AniT.Interval = New TimeSpan(0, 0, 0, 0, 1)
AniT.Start()
AniTxt.Foreground = TextFill
End Sub
Private Sub TextRefresh(sender As Object, e As EventArgs)
AniC += 1
If AniC > 145 Then
AniC = -5
End If
If AniC < 5 Then
S1.Color = Color.FromArgb(255, 128, 0, 255)
S2.Color = Color.FromArgb(255, 255, 255, 255)
S3.Color = Color.FromArgb(255, 255, 255, 255)
S1.Offset = 0
S2.Offset = AniC + 5
S3.Offset = 100
ElseIf AniC <= 100 Then
S1.Color = Color.FromArgb(255, 255, 255, 255)
S2.Color = Color.FromArgb(255, 128, 0, 255)
S3.Color = Color.FromArgb(255, 255, 255, 255)
S1.Offset = AniC - 5
S2.Offset = AniC
S3.Offset = AniC + 5
ElseIf AniC <= 105 Then
S1.Color = Color.FromArgb(255, 255, 255, 255)
S2.Color = Color.FromArgb(255, 255, 255, 255)
S3.Color = Color.FromArgb(255, 128, 0, 255)
S1.Offset = 0
S2.Offset = AniC - 5
S3.Offset = 100
End If
End Sub
End Class
以上代码的预期运行效果是文字的紫色渐变条循环从左滑到右,但是实际效果是每隔一段时间闪呈紫色。求高人帮忙=。=
2014年10月25日 10点10分
1
Imports System.Media
Public Class Splash
Private AniC As Short = 145
Private S1 As GradientStop = New GradientStop
Private S2 As GradientStop = New GradientStop
Private S3 As GradientStop = New GradientStop
Private AniT As DispatcherTimer = New DispatcherTimer
Private TextFillCol As GradientStopCollection = New GradientStopCollection
Private TextFill As GradientBrush = New LinearGradientBrush(TextFillCol, -90)
Private Sub Splash_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
AddHandler AniT.Tick, AddressOf TextRefresh
S1.Offset = 0
S2.Offset = 0
S3.Offset = 0
S1.Color = Color.FromArgb(255, 255, 255, 255)
S2.Color = Color.FromArgb(255, 255, 255, 255)
S3.Color = Color.FromArgb(255, 255, 255, 255)
TextFillCol.Add(S1)
TextFillCol.Add(S2)
TextFillCol.Add(S3)
AniT.Interval = New TimeSpan(0, 0, 0, 0, 1)
AniT.Start()
AniTxt.Foreground = TextFill
End Sub
Private Sub TextRefresh(sender As Object, e As EventArgs)
AniC += 1
If AniC > 145 Then
AniC = -5
End If
If AniC < 5 Then
S1.Color = Color.FromArgb(255, 128, 0, 255)
S2.Color = Color.FromArgb(255, 255, 255, 255)
S3.Color = Color.FromArgb(255, 255, 255, 255)
S1.Offset = 0
S2.Offset = AniC + 5
S3.Offset = 100
ElseIf AniC <= 100 Then
S1.Color = Color.FromArgb(255, 255, 255, 255)
S2.Color = Color.FromArgb(255, 128, 0, 255)
S3.Color = Color.FromArgb(255, 255, 255, 255)
S1.Offset = AniC - 5
S2.Offset = AniC
S3.Offset = AniC + 5
ElseIf AniC <= 105 Then
S1.Color = Color.FromArgb(255, 255, 255, 255)
S2.Color = Color.FromArgb(255, 255, 255, 255)
S3.Color = Color.FromArgb(255, 128, 0, 255)
S1.Offset = 0
S2.Offset = AniC - 5
S3.Offset = 100
End If
End Sub
End Class
以上代码的预期运行效果是文字的紫色渐变条循环从左滑到右,但是实际效果是每隔一段时间闪呈紫色。求高人帮忙=。=