Winform 调用wpf ,wpf项目无法接收键盘信息的问题

如题,当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中,使用前请添加引用

posted @ 2018-04-03 10:43  风口浪猪  阅读(244)  评论(0编辑  收藏  举报