0

我有一个故事板,它可以自动反向运行,让我们说 10 秒。

无论如何,我可以让故事板本身沿着故事板时间线每 2 秒引发一个事件。

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

我希望这足以继续,但是,如果需要更多信息,请询问,我会解释我在做什么。

提前致谢

担。

4

1 回答 1

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

于 2012-06-21T20:28:51.767 回答