Application.Idle事件未在WPF应用程序中触发

时间:2010-02-26 19:53:51

标签: wpf winforms windowsformshost

我正在使用第三方Windows窗体控件,它使用Application.Idle事件执行“延迟”操作。

现在我们正在将应用程序移动到WPF,这些操作已停止工作。 我发现System.Windows.Forms.Application.Idle事件没有按预期引发。

如何在WPF应用程序中触发Idle事件,以便我可以继续使用该第三方控件(在WindowsFormsHost中)? 可以修改Windows窗体控件。

2 个答案:

答案 0 :(得分:9)

您应该阅读this page on MSDN,其中描述了WPF应用程序中的消息循环行为。特别是看起来ComponentDispatcher类可以用来捕获一个大致对应于Windows Forms Application.Idle事件的ThreadIdle事件。

然后,您可以使用System.Windows.Forms.Application.RaiseIdle方法来提升组件所期望的Idle事件。

答案 1 :(得分:0)

如果您使用的是WPF应用程序,则实际上您不再使用System.Windows.Forms.Application类来运行您的应用程序,即使您的应用程序包含Windows窗体控件也是如此。

相反,您正在使用System.Windows.Application class(不同的命名空间)。