5

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

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

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

4

2 回答 2

9

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

然后,您大概可以使用System.Windows.Forms.Application.RaiseIdle方法来引发组件期望的 Idle 事件。

于 2010-02-26T20:07:37.637 回答
0

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

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

于 2010-02-26T20:11:05.180 回答