如题,当Winform项目调用WPF 项目程序是,经Winform界面启动的wpf窗口无法接收键盘信息。解决方法是在调用之前调用ElementHost.EnableModelessKeyboardInterop()方法
TypeManager.View.FrmMain window = new FrmMain(); System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(window); //设置窗在最顶层显示 window.Topmost = true; window.Show();
如代码所示,显示窗口之前调用该方法。
方法的描述:
// // 摘要: // 使 System.Windows.Window 在从 Windows Forms中以无模式方式打开时能正确地接收键盘消息。 // // 参数: // window: // 要以无模式方式打开的 Windows Presentation Foundation (WPF) 窗口。 public static void EnableModelessKeyboardInterop(Window window);
该方法位于程序集 WindowsFormsIntegration中,使用前请添加引用