将WPF窗口添加到Winforms应用程序时是否存在陷阱



我在解决方案中添加了一个WPF项目,其中包含一个项目——Winforms项目。然后,我引用了Winforms中的WPF项目,并添加了适当的引用。然后,我在原来的Winforms项目中创建了一个新的WPF窗口,并从按钮事件处理程序中打开它。它运行良好。

然而,

在过去搜索类似的解决方案时,我不记得提到过这个解决方案(只是在解决方案中添加另一个项目(,所以我想知道:在Winforms应用程序中添加WPF窗口是否存在陷阱?

编辑

我指的不是将它嵌入到窗体中。只是一个单独的窗口(可能是主窗体的而不是(。我也不是指明显的挑战,比如需要将位图转换为WPF。我只是指没有注意到的陷阱,即应用程序编译并似乎在运行,但例如,稍后在具有不同DPI的机器上执行时,会显示错误。

唯一明显的缺陷是WPF窗口不会得到任何键盘输入,除非在Windows窗体应用程序中打开它之前调用ElementHost.EnableModelessKeyboard

Window1 window = new Window1();
System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(window);
window.Show();

最新更新