从单独的 WPF 应用程序处理 WinForms 按钮的 Click 事件

Handling a WinForms button's Click event from a separate WPF application

总结:所以我有两个应用程序:一个是WinForms,另一个是WPF。我想弄清楚如何单击 WinForms 应用程序中的按钮并让 WPF 应用程序响应该单击。

所以为了更详细,我正在处理现有的 WinForms 应用程序,添加新功能。对于其中一个功能,我需要创建一个单独的 WPF 应用程序,其中包含位于 WinForms 应用程序之上并允许用户在 WinForms 应用程序上绘制的 InkCanvas。

我在 WinForms 应用程序上有 3 个按钮用于控制 InkCanvas:一个用于启用绘图,一个用于启用擦除,一个用于清除 canvas。我需要弄清楚的是如何在 WPF 应用程序中处理这 3 个按钮的单击事件。

我一直在研究 PRISM 的 EventAggregator(虽然我不知道它是否可以在不同的进程之间工作)和 WCF。 WCF 似乎是我应该使用的,但我没有使用它的经验,所以进展缓慢。我看过有关 WCF 双工服务的文章 (link)(link)

所以我想我的问题是:在单独的 WPF 应用程序中处理 WinForms 按钮的 Click 事件的最佳方法是什么?如果这个问题已经被问过或者问题太模糊,请提前致歉。

WinForms 可以使用 ElementHost control, built into the Winforms control library. If that doesn't work in this case (because you are using transparency), you can try using a new WPF window that you overlay on top of the application (see Open WPF window in WindowsForm APP) 托管 WPF 元素。

这样您就可以连接事件处理程序和通信,而不必担心 IPC 方法或管理两个不同可执行文件之间的应用程序生命周期。