4

我在 wpf 应用程序中有三个故事板。

begin 是单个动画 progress 是重复动画 end 也是单个动画

所有故事板动画相同的图像,“进度”故事板正在重复(当另一个线程中的查询正在运行时),“开始”故事板在它之前,“结束”动画在它之后。我认为这是一个简单的问题:当应用程序启动时,启动“开始”动画,然后在 oncompleted 事件处理程序中,启动进度动画等。

但它不起作用:进度动画开始了,但它看起来不正确(奇怪的闪烁)。

我做了一个“button1”来分析这个,然后我注意到按钮的 onclick 事件处理程序中的相同方法是有效的(在开始情节提要结束后,我按下它,进度情节提要启动并完美显示)。(开始动画的FillBehavior是“停止”:没有这个设置按钮不起作用,但设置后事件处理程序仍然错误)

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        begin = (Storyboard)FindResource("startanimation");
        progress = (Storyboard)FindResource("progressanimation");
        end = (Storyboard)FindResource("stopanimation");
        begin.Completed += new EventHandler(begin_Completed);
        begin.Begin();
    }


    void begin_Completed(object sender, EventArgs e)
    {
        progress.Begin();       //not works
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {            
        progress.Begin();       //works
    }

任何想法?

4

2 回答 2

0

尝试这个:

void begin_Completed(object sender, EventArgs e)      
{          
     this.Dispatcher.Invoke(
                            System.Windows.Threading.DispatcherPriority.Normal,
                            new Action(
                            delegate()
                            {
                                progress.Begin();
                            }
                        ));
} 
于 2012-07-06T11:49:05.513 回答
0

最终我被迫制作一个辅助计时器,并在滴答事件中启动进度动画。非常难看,但可以。

仍然欢迎任何其他提示。

于 2012-07-08T18:05:44.003 回答