WPF ColorAnimation pour une propriété Brush
Je me demande si quelqu'un peut m'aider j'ai une étiquette dont j'ai besoin pour être en mesure de cross-fade entre 2 couleurs lorsqu'une méthode est appelée dans le code derrière.
Ma meilleure tentative à ce jour:
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
Le problème que j'ai c'est que ColorAnimation renvoie à un support.La couleur et Le type de propriété pour le premier plan est d'une Brosse.
Je sais comment créer des pinceau, mais pas comment le faire dans une animation.
À partir d'une recherche sur Google, il semble que j'ai besoin d'un convertisseur:
<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
mais tous les exemples que j'ai vu le lier à l'animation en XAML Et j'aimerais le faire dans le code derrière...
Quelqu'un peut-il svp me pointer dans la bonne direction?
Grâce
source d'informationauteur Basic
Vous devez vous connecter pour publier un commentaire.
La solution habituelle pour ce qui est de ne pas utiliser un convertisseur, mais au lieu d'animer la Couleur de la Brosse. Cependant, pour ce faire, vous avez besoin d'un PropertyPath, qui à son tour signifie que vous avez besoin d'un storyboard:
(pardon pour la syntaxe C#)
Remarque le chemin de la propriété dans le SetTargetProperty appel, qui traverse le bas à travers le premier plan de la propriété et dans la brosse de la Couleur à la propriété.
Vous pouvez également utiliser cette technique pour animez des couleurs de dégradé dans un gradient de brosse, etc.
//VariableColour & BaseColour sont de classe de la Couleur, de la plage de temps est la Classe de Délai, BackGroundCellGrid est la classe de la Grille;
//pas besoin de créer SolidColorBrush et la liaison dans le code XAML;
//avoir du plaisir!