我遇到了一种奇怪的行为。我有下面的方法,正确调用,没有发现问题。 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语句中工作......
可以帮助我在这个可怜的心灵中发光吗? 感谢...
答案 0 :(得分:0)
设置为此故事板创建的时钟的交互式速度比使用Storyboard.SetSpeedRatio。
来自MSDN:要以交互方式控制此故事板,您必须使用 调用交互方法时,包含相同的containsObject参数 您曾经开始使用故事板。一个可控的故事板可以 暂停,恢复,搜索,停止和删除。制作故事板 在代码中可控制,必须使用相应的重载 storyboard的Begin方法并指定true以使其可控。