通过C# WinForm控件创建的WPF WIndow窗口控件无法输入的问题
2021-06-06 23:05
标签:rop tps int fan 原因 window dial dialog bsp 原文:通过WinForm控件创建的WPF 控件无法输入的问题 今天把写的一个WPF程序发布到别的机器上执行,发现一个比较奇怪的问题:在那个机器上用英文输入法无法输入数字,非要切换到中文输入法才行;但在我的机器上却是好好的。 最开始以为是输入法的问题,弄了好一阵子后,终于找到了原因:虽然这个程序是个WPF程序,但为了复用之前的部分代码,使用着一个WinForm的菜单控件,后续的子窗口都是通过这个WinForm菜单创建的。而用WinForm控件创建的WPF控件可能出现无法正确响应键盘事件的情况。 找到了原因后,一个常规的解决方法是:将WinForm控件换成WPF控件,如果WinForm控件比较容易替换的话用这种方式是可以一次性的解决问题的。但如果要复用之前的控件,则可以使用如下函数使能WinForm创建的窗口或使用了WinForm创建的控件的窗口。 方案1:非模态显示(show) 引用WindowsFormsIntegration.dll System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(winWPF); 方案2:模态显示(showdialog) winWPF.ShowDialog(); 相关文章: 解决Winform中弹出WPF窗体不能在文本框中输入的问题 通过C# WinForm控件创建的WPF WIndow窗口控件无法输入的问题 标签:rop tps int fan 原因 window dial dialog bsp 原文地址:https://www.cnblogs.com/lonelyxmas/p/10764003.html
winWPF.Show();
上一篇:window备忘录
文章标题:通过C# WinForm控件创建的WPF WIndow窗口控件无法输入的问题
文章链接:http://soscw.com/essay/91481.html