总结:所以我有两个应用程序:一个是WinForms,另一个是WPF。我试图弄清楚如何单击WinForms应用程序中的按钮并让WPF应用程序响应该单击。
为了更详细,我正在研究现有的WinForms应用程序,添加新功能。对于其中一个功能,我需要创建一个单独的WPF应用程序,其中的InkCanvas位于WinForms应用程序之上,允许用户绘制WinForms应用程序。
我在WinForms应用程序上有3个用于控制InkCanvas的按钮:一个用于启用绘图,一个用于启用擦除,一个用于清除画布。我需要弄清楚如何在WPF应用程序中处理这3个按钮的Click事件。
我一直在研究像PRISM的EventAggregator(虽然我不知道这是否可以在不同的进程之间工作)和WCF。 WCF看起来像我应该使用的,但我没有使用它的经验,所以它很慢。我遇到过有关WCF双工服务(link)(link)
的文章所以我想我的问题是:在单独的WPF应用程序中处理WinForms按钮的Click事件的最佳方法是什么?如果已经提出这个问题或者问题是否太模糊,请提前道歉。
答案 0 :(得分:1)
WinForms可以使用内置于Winforms控件库中的ElementHost
控件来托管WPF元素。如果在这种情况下不起作用(因为您使用的是透明度),则可以尝试使用覆盖在应用程序顶部的新WPF窗口(请参阅Open WPF window in WindowsForm APP)。
通过这种方式,您可以连接事件处理程序和通信,而无需担心IPC方法或管理两个不同可执行文件之间的应用程序生存期。