wpf - wpf 应用程序中的多个 Storyboard

标签 wpf c#-4.0

我在 wpf 应用程序中有三个 Storyboard。

开始是单个动画
进步是一个重复的动画
结束也是一个单一的动画

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

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

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

    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
    }

任何的想法?

最佳答案

尝试这个:

void begin_Completed(object sender, EventArgs e)      
{          
     this.Dispatcher.Invoke(
                            System.Windows.Threading.DispatcherPriority.Normal,
                            new Action(
                            delegate()
                            {
                                progress.Begin();
                            }
                        ));
} 

关于wpf - wpf 应用程序中的多个 Storyboard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11339471/

相关文章:

c# - 是否可以将两个源属性绑定(bind)到一个控件属性?

wpf - Dispatcher 和 SynchronizationContext 类

c# - WPF 动画性能随时间下降

c# - BlurEffect 在应用效果之前有很长的延迟

.net - 如何使用代码契约进行单元测试

WPF:工具栏是一个键盘陷阱

.net - 间歇性 XmlSerializer(部分)空文件

c# - 如何测试 AccessViolationException 的处理

C# 4.0 - 如何处理可选的字符串参数

c# - Syslog 心跳和监控