示例
设置动画资源,并在合适的时候进行相应的动画操作
<Style TargetType="{x:Type controls:ProgressBar}">
<Setter Property="Width" Value="223"/>
<Setter Property="Height" Value="18"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type controls:ProgressBar}">
<ControlTemplate.Resources>
<Storyboard x:Key="StoryboardShow">
<DoubleAnimation Storyboard.TargetName="PART_ResultPath" Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:.2"/>
</Storyboard>
<Storyboard x:Key="StoryboardHidden">
<DoubleAnimation Storyboard.TargetName="PART_ResultPath" Storyboard.TargetProperty="Opacity" To="0" Duration="0:0:0"/>
</Storyboard>
</ControlTemplate.Resources>
<Grid>
<Path x:Name="PART_ResultPath" Height="18" Stretch="Uniform" Width="18" HorizontalAlignment="Right" VerticalAlignment="Center" Opacity="0" Datae="{DynamicResource SuccessGeometry}" Fill="Green"/>
<Border x:Name="TemplateRoot" CornerRadius="5" Background="{TemplateBinding Background}" Width="200" Height="16" HorizontalAlignment="Left">
<Border x:Name="Indicator" Background="{DynamicResource ProgressBoxFillBrush}" CornerRadius="5" Width="100" HorizontalAlignment="Left">
<TextBlock x:Name="PART_TextBlock" Text="{TemplateBinding Text}" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0 0 15 0" Foreground="#505050" FontSize="14"/>
</Border>
</Border>
<Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsComplete" Value="True">
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource StoryboardShow}"/>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource StoryboardHidden}"/>
</Trigger.ExitActions>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>