How to animate the ForegroundColor of all TextBlocks in Style?

  • Thread starter Thread starter ShannonZhou
  • Start date Start date
S

ShannonZhou

Guest
The following xaml code could animate the ForegroundColor of the TextBlock

<TextBlock
Name="MyChangingColorText"
Margin="20"
Width="640" Height="100" FontSize="48" FontWeight="Bold">
This is changing color text
<TextBlock.Foreground>
<SolidColorBrush x:Name="MySolidColorBrush" Color="Maroon" />
</TextBlock.Foreground>

<!-- Animates the text block's color. -->
<TextBlock.Triggers>
<EventTrigger RoutedEvent="TextBlock.Loaded">
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetName="MySolidColorBrush"
Storyboard.TargetProperty="Color"
From="DarkOrange" To="SteelBlue" Duration="0:0:5"
AutoReverse="True" RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</TextBlock.Triggers>
</TextBlock>

There are lots of TextBlocks in my UI. So I want to abstract this animation in a Style. But the same xaml code cannot use in the Style

<Style x:Key="aniTextBlock" TargetType="TextBlock">
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush x:Name="MySolidColorBrush" Color="Gray" />
</Setter.Value>
</Setter>
<Style.Triggers>
<EventTrigger RoutedEvent="Binding.TargetUpdated">
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetName="MySolidColorBrush"
Storyboard.TargetProperty="Color"
From="DarkOrange" To="SteelBlue" Duration="0:0:5"
AutoReverse="True" RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>


( Error: TargetName property cannot be set on a Style Setter.)

My question is: how to implement the foregroundcolor animation in a Style?

Continue reading...
 
Back
Top