在WPF中设置TextBlock文本的动画

时间:2011-03-15 07:55:29

标签: wpf

我的应用程序中有一个状态栏,其内容为TextBlock。当我的应用程序运行时,我希望文本块文本显示Processing...,但点数增加和减少。这可能吗?

注意:我不想使用进度条

1 个答案:

答案 0 :(得分:4)

您可以使用String动画,如下所示:

<Storyboard x:Key="StringAnimationStoryboard">
  <StringAnimationUsingKeyFrames AutoReverse="True" Storyboard.TargetProperty="Text" RepeatBehavior="Forever">
    <DiscreteStringKeyFrame Value="Processing" KeyTime="0:0:0.1" />
    <DiscreteStringKeyFrame Value="Processing." KeyTime="0:0:0.2" />
    <DiscreteStringKeyFrame Value="Processing.." KeyTime="0:0:0.3" />
    <DiscreteStringKeyFrame Value="Processing..." KeyTime="0:0:0.4" />
    <DiscreteStringKeyFrame Value="Processing...." KeyTime="0:0:0.5" />
    <DiscreteStringKeyFrame Value="Processing....." KeyTime="0:0:0.6" />
  </StringAnimationUsingKeyFrames>
</Storyboard>
<Style TargetType="TextBlock" x:Key="StringAnimationStyle">
  <Style.Triggers>
    <EventTrigger Event="TextBlock.Loaded" >
        <BeginStoryboard Storyboard="{StaticResource StringAnimationStoryboard}" />
    </EventTrigger>
  </Style.Triggers>
</Style>

请注意,如果您在主应用程序线程中进行处理器密集型计算,则动画可能无法运行...