开发者

Animate TextBlock colour change

开发者 https://www.devze.com 2023-04-04 20:36 出处:网络
Is there a way to animate a TextBlock\'s colour change? At the moment I am basically using the enter/lea开发者_如何学Gove events to change the colour and I would like to a almost like a fade (but a

Is there a way to animate a TextBlock's colour change?

At the moment I am basically using the enter/lea开发者_如何学Gove events to change the colour and I would like to a almost like a fade (but a fast fade, so .1/.2 secs) to give it a nicer visual appearance instead of being instantaneous.

Any advice on the best/easiest way to do this?

ps. Due to constraints, the actual code is vb.net but I will accept c#.net answers as I can read both fine. Just learning WPF.

ta


You want a ColorAnimation. There's an example on that page either in 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> 

or in 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)
0

精彩评论

暂无评论...
验证码 换一张
取 消