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 に答える