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

Dan*_*iel 5 wpf windowsformshost winforms

我正在使用第三方Windows窗体控件,使用Application.Idle事件执行一些"延迟"操作.

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

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

Jos*_*osh 9

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

然后,您可以使用System.Windows.Forms.Application.RaiseIdle方法在组件期望时引发Idle事件.

  • 谢谢,我不知道ComponentDispatcher.一行(ComponentDispatcher.ThreadIdle + =(发件人,E)=> System.Windows.Forms.Application.RaiseIdle(E)),我的问题就解决了! (5认同)