2011-09-13 4 views
0

Existe-t-il un moyen d'animer le changement de couleur d'un TextBlock?Animer le changement de couleur TextBlock

Pour le moment, je suis fondamentalement en utilisant les événements d'entrée/sortie pour changer la couleur et je voudrais presque un fondu (mais un fondu rapide, donc .1/0,2 secondes) pour lui donner un meilleur visuel apparence au lieu d'être instantanée.

Un conseil sur la meilleure façon de faire?

ps. En raison de contraintes, le code actuel est vb.net mais j'accepterai les réponses C# .net car je peux lire les deux très bien. J'apprends juste WPF.

ta

Répondre

2

Vous voulez un ColorAnimation. Il y a un exemple sur cette page soit en XAML:

<!-- Animates the brush's color to orange 
    when the mouse leaves the rectangle. --> 
<EventTrigger RoutedEvent="Rectangle.MouseLeave"> 
    <BeginStoryboard> 
    <Storyboard> 
     <ColorAnimation 
     Storyboard.TargetName="MyAnimatedBrush" 
     Storyboard.TargetProperty="Color" 
     To="Orange" Duration="0:0:1" /> 
    </Storyboard> 
    </BeginStoryboard> 
</EventTrigger> 

ou dans le code:

' 
' Animate the brush's color to orange when 
' the mouse leaves the rectangle. 
' 
Dim mouseLeaveColorAnimation As New ColorAnimation() 
mouseLeaveColorAnimation.To = Colors.Orange 
mouseLeaveColorAnimation.Duration = TimeSpan.FromSeconds(1) 
Storyboard.SetTargetName(mouseLeaveColorAnimation, "MyAnimatedBrush") 
Storyboard.SetTargetProperty(mouseLeaveColorAnimation, New PropertyPath(SolidColorBrush.ColorProperty)) 
Dim mouseLeaveStoryboard As New Storyboard() 
mouseLeaveStoryboard.Children.Add(mouseLeaveColorAnimation) 
AddHandler aRectangle.MouseLeave, Sub(sender As Object, e As MouseEventArgs) mouseLeaveStoryboard.Begin(Me) 
Questions connexes