我想利用Storyboard
对象在特定时间调用方法。特别;我正在尝试制作烟花显示屏,其中Firework
用户控件具有Fire
方法。我想创建几个这些控件,并在特定时间调用它们的方法(就像真正的节目一样)。使用故事板在特定时间调用方法
通常情况下,您可以使用Storyboard
来随着时间对物体的属性进行动画处理。 有没有办法调用一个方法呢?
喜欢的东西(当然是伪代码):
<Storyboard>
<MethodUsingKeyFrames>
<MethodKeyFrame KeyTime="0:0:1" TargetName="Firework1" Method="Fire"/>
<MethodKeyFrame KeyTime="0:0:2.5" TargetName="Firework2" Method="Fire"/>
</MethodUsingKeyFrames>
</Storyboard>
我已经考虑刚上高间隔使用Timer
并做测序自己,但似乎像一个黑客攻击;特别是当我们有这样一个很好的现有方式时。
备注:与Use a storyboard to call a method in a usercontrol created dynamically相关;这个问题(面值)似乎是相同的,但答案与我试图完成的事情无关。
这里有一个简单的想法:你需要一些'InvokeCommandAction'(在'System.Windows.Interactivity'中,当然当触发某个触发器时它会被调用。所以你需要使用'Storyboard'来触发这个触发器例如通过将某些属性动画化为触发触发器的值) – 2014-10-30 21:00:42
@KingKing我曾经想过类似的东西,看起来有点冒失,但可能是最好的方式,肯定比使用定时器和自己处理定时更好 – BradleyDotNET 2014-10-30 21:05:27
是的,这有点不好意思,但是现在XAML迫使我们做相当多的hacky代码(除非我们使用一些自定义库) – 2014-10-30 21:08:08