【发布时间】:2011-12-12 16:01:02
【问题描述】:
我有一个 WinForms 应用程序,并想添加一些不错的 WPF 控件,其中一个是“不确定”进度条。它的动画效果很好,直到我告诉它停止。
我已经这样做了,并且正在绞尽脑汁想为什么它没有动画(更改进度条的值)。
我最终尝试以模态方式显示我的表单(包含 ElementHost),嘿,它会动画,但我想以非模态方式显示表单,因为我想继续在幕后处理。
是否有某种设置可以告诉 ElementHost 窗口继续“动画”?
谢谢 丰富。
【问题讨论】:
-
我过去做过类似的事情(通过 WinForms 应用程序中的 ElementHost 的 WPF 进度条)并且没有遇到您描述的问题。您是否尝试在新项目中隔离并重现该行为?
-
不,但我可以......这很简单。
-
好的,我在一个单独的项目中完成了这项工作,首先它起作用了,但是当我尝试进行一些处理和 thread.sleep 时,它停止了动画。也许我需要在一个单独的线程中更新我的数据库......这将释放这个线程以继续动画?或者有没有办法告诉 WPF 在另一个线程上做它的东西?
-
好的,所以您的数据库操作正在阻塞 WPF UI 线程。尝试使用 DispatcherTimer 而不是普通的 Timer。如果这没有帮助,请查看 WPF Dispatcher 以更新进度条。顺便说一句:避免使用 Thread.Sleep 这不是线程编程的好方法,大多数时候应该避免
-
别担心,我一般不使用它,我只是想看看它是否在“当前”线程繁忙时仍然会动画。还有..我没有使用“计时器”我使用的是“双动画”
标签: c# .net wpf winforms elementhost