0

我正在尝试制作的 RSS 演示者发生了一件不寻常的事情。这意味着在播放“Out”动画后转到下一个项目,然后播放“In”动画。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)一次,第二次执行三次,第三次执行六次 - 依此类推

也许我正在以错误的方式解决这个问题,这导致了这个问题?有什么建议么?

4

1 回答 1

2

您将在每个计时器滴答声中添加另一个事件处理程序!

移动这段代码:

sbOut.Completed += new EventHandler(sbOut_Completed);

进入你的初始化 - 只做一次。

于 2012-08-31T03:08:38.550 回答