WinFMS应用程序中的WPF Animated ProgressBar

时间:2011-12-12 16:01:03

标签: c# .net wpf winforms elementhost

我有一个WinForms应用程序,并希望添加一些不错的WPF控件,其中一个是一个'不确定'的进度条...它只是动画很好,直到我告诉它停止。

我已经做到了这一点,并且绞尽脑汁想知道为什么它没有动画(更改进度条的值)。

我最终尝试以模态方式显示我的表单(包含ElementHost),并且嘿presto,它动画,但我想非模态地显示表单,因为我想继续在幕后处理。

是否有某种设置告诉ElementHost窗口继续'动画'?

由于 丰富。

2 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点,最简单的方法是使用背景工作者完成冗长的任务。 Backgroundworker有一个报告进度的事件。处理此事件并在处理程序中更改进度条的值。只是在主线程中有动画但仍然在主线程上工作将无法正常工作...
您可能尝试的另一个方法(虽然不是我建议用于健康的应用程序)是实现DoEvents函数并在您希望进度条更新时在主线程中调用它...这是链接的DoEvents实施:
MSDN DoEvents sugestion
我强烈推荐第一种方法

答案 1 :(得分:0)

正如我在上面的评论中提到的,解决方案是在separte线程中运行处理,这允许.net主GUI线程执行其操作,并为进度条设置动画。