0

作成しようとしている RSS プレゼンターで異常なことが起こっています。「アウト」アニメーションが再生された後に次の項目に移動し、「イン」アニメーションが再生されることを意図しています。http://oeis.org/A000217

        void _timer_Tick(object sender, EventArgs e)
    {
        Storyboard sbOut = this.FindResource("sbAnimateOut") as Storyboard;
        sbOut.Completed += new EventHandler(sbOut_Completed);
        sbOut.Begin();

    }

    void sbOut_Completed(object sender, EventArgs e)
    {
        if (_selected < _total)
        {
            _selected++;


        }
        else
        {
            GetFeed(_feed);
            _selected = 0;

        }
        lstbxItems.SelectedIndex = _selected;
        counter.Text = _selected.ToString();

        Storyboard sbIn = this.FindResource("sbAnimateIn") as Storyboard;
        sbIn.Begin();
    }

しかし、アイテムをスキップしているように見えることに気付きました。行ごとに実行するとvoid sbOut_Completed(object sender, EventArgs e)、最初は 1 回、2 回目は 3 回、3 回目は 6 回、というように順番に実行されるようです。

おそらく私はこれを間違った方法で行っており、それが問題を引き起こしているのでしょうか? 助言がありますか?

4

1 に答える 1

2

タイマーティックごとに別のイベントハンドラーを追加しています!

このコードを移動します:

sbOut.Completed += new EventHandler(sbOut_Completed);

初期化に - 一度だけ実行してください。

于 2012-08-31T03:08:38.550 に答える