在C#代码(WPF项目)中,我可以在故事板中的特定点引发事件

时间:2012-06-21 19:23:12

标签: c# wpf events storyboard

我有一个故事板,永远运行自动反转让我们说10秒钟。

无论如何,我可以让故事板本身在故事板时间线上每2秒举一次活动。

故事板只存在于c#代码中(不是xaml)。

我希望这已经足够了,但是,如果需要更多信息,请询问,我会解释我在做什么。

提前致谢

1 个答案:

答案 0 :(得分:2)

故事板时间表提供了一些可能有帮助的事件......类似于:

private Storyboard stb = new Storyboard();
private TimeSpan tsp = new TimeSpan();

public MainWindow()
{
    InitializeComponent();
    stb.CurrentTimeInvalidated += new EventHandler(doSomething);            
}

private void doSomething(Object sender, EventArgs e)
{
    Clock storyboardClock = (Clock)sender;
        // or whatever other logic you want
    if (storyboardClock.CurrentTime.Value.Seconds % 2 == 0 && 
       Math.Abs((storyboardClock.CurrentTime.Value - tsp).TotalSeconds) >= 2)
    {
        // or something like this...
        tsp = storyboardClock.CurrentTime.Value
         - new TimeSpan(0,0,0,0,storyboardClock.CurrentTime.Value.Milliseconds);
        // do something
    }
}

退房:

MSDN - CurrentTimeInvalidated

MSDN - CurrentStateInvalidated