我想知道是否有人可以帮助我 - 我有一个标签,在代码后台调用方法时需要能够在任意两种颜色之间进行交叉淡入淡出效果。
到目前为止,我最好的尝试:
Private OldColor as Color = Colors.White
Sub SetPulseColor(ByVal NewColor As Color)
Dim F As New Animation.ColorAnimation(OldColor, NewColor, New Duration(TimeSpan.Parse("00:00:01")))
OldColor = NewColor
F.AutoReverse = False
PulseLogo.BeginAnimation(Label.ForegroundProperty, F)
End Sub
我的问题是ColorAnimation返回一个Media.Color,而Foreground的属性类型为Brush。
我知道如何创建适当的Brush,但不知道如何在动画中实现它。
从谷歌搜索来看,似乎我需要一个转换器:
<ValueConversion(GetType(SolidColorBrush), GetType(SolidColorBrush))> _
Public Class ColorConverter
Implements IValueConverter
Public Function Convert(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.Convert
Dim Color As Color = DirectCast(value, Color)
Return New SolidColorBrush(Color)
End Function
Public Function ConvertBack(ByVal value As Object, ByVal targetType As Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.ConvertBack
Return Nothing
End Function
End Class
但我看到的所有示例都是在XAML中将其绑定到动画中 - 而我想在代码后端完成它...
有人能指点我吗?
谢谢