WPF动画StoryBoard SpeedRatio正在改变但没有效果

时间:2016-01-27 14:29:34

标签: c# wpf animation if-statement storyboard

提前多多感谢。

我遇到了一种奇怪的行为。我有下面的方法,正确调用,没有发现问题。 AnimationRunning是一个布尔值,它正确评估为true,但动画的实际速度保持不变,即使SpeedRatio中存储的值发生变化(如状态栏标签所示),实际动画速度保持不变。 / p>

 private void TextBoxTyping(object sender, KeyEventArgs e)
    {
        if (AnimationRunning == true) { StoryBoard.SpeedRatio += 5; }; 
        statusbar.Content = "Speed: " + StoryBoard.SpeedRatio.ToString();
    }

要检查AnimationRunning的计算结果是否为true,我在if闭包内弹出 MessageBox.Show(“动画正在运行”); 。消息确实会弹出。

但是,如果我将代码更改为以下内容:

 private void TextBoxTyping(object sender, KeyEventArgs e)
    {
        StoryBoard.SpeedRatio += 5; 
        statusbar.Content = "Speed: " + StoryBoard.SpeedRatio.ToString();
    }

动画的速度确实会发生变化。 我无法理解如何使用AnimationRunning,我无法让SpeedRatio在if语句中工作......

可以帮助我在这个可怜的心灵中发光吗? 感谢...

1 个答案:

答案 0 :(得分:0)

设置为此故事板创建的时钟的交互式速度比使用Storyboard.SetSpeedRatio

  

来自MSDN:要以交互方式控制此故事板,您必须使用   调用交互方法时,包含相同的containsObject参数   您曾经开始使用故事板。一个可控的故事板可以   暂停,恢复,搜索,停止和删除。制作故事板   在代码中可控制,必须使用相应的重载   storyboard的Begin方法并指定true以使其可控。