日期:2014-05-17  浏览次数:20702 次

WPF,动画为什么会无限次数执行

<Button Content="Button" HorizontalAlignment="Stretch" Margin="193,114,0,0" VerticalAlignment="Top" Width="75" Height="30">
    <Button.Triggers>
        <EventTrigger RoutedEvent="Loaded">
            <BeginStoryboard>
                <Storyboard>
                    <DoubleAnimation BeginTime="0:0:2" RepeatBehavior="6" Storyboard.TargetProperty="Width" To="150" Duration="0:0:4"/>
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Button.Triggers>
</Button>


设置了动画的重复次数为6次,可结果是无限次数的重复,why ?

------解决方案--------------------
改成RepeatBehavior="6x"

 RepeatBehavior 具有三种可能的模式:持续时间、迭代次数或文本 Forever。 如果字符串中没有文本 x,则采用持续时间模式。 若要以秒为单位指定持续时间,必须在值之前附加“0:0:”,因为持续时间的格式为 [days.]hours:minutes:seconds。 
------解决方案--------------------
 将RepeatBehavior="6"修改为RepeatBehavior="6x",这样重复6次后停止
------解决方案--------------------
RepeatBehavior:说明Timeline在重复的次数。这个属性能够被设为三种类型的值:重复次数,一个时间段,以及一个特殊值“Forever”。
“Forever”使Timeline不断地重复。
一个时间段表示Timeline运行的时间长度。例如,将一个Duration为2.5秒的动画的RepeatBehavior设为“0:0:5”会使动画重复两次。
重复次数指定了Timeline运行的次数。您使用下面的语法来指定重复次数:重复次数x。例如,“4x”表示Timeline重复四次。
该属性默认值为“1x”,表示时间线只会执行一次。
------解决方案--------------------
http://msdn.microsoft.com/zh-SG/library/system.windows.media.animation.repeatbehavior.forever(v=vs.100).aspx

给你个官方解释看看吧 里面例子里有