Windows 7上的WPF应用程序只有在按下CTRL键后才能正常响应

我正在开发一个WPF应用程序使用Windows 8作为与.NET 4.5的开发人员机器。 我也使用了一些DevExpress控件。

在开发者机器上,应用程序的用户界面正常响应。

在Windows 7上testing应用程序时,无论是使用虚拟机还是其他PC​​,都会显示UI,但不能正常响应。 例如,我有一个DevExpress网格控件,当我点击一行时,行没有突出显示为选定,当鼠标hoverbutton和菜单,也没有任何反应。

当我按下CTRL键时魔法开始了! 之后,WPF应用程序正常响应,就像在Windows 8上一样。

我想当我按下这个键时,会发生一些与Focus有关的事情。 另外,当窗口大小调整后,网格上的变化就会出现,但是会在“冻结”之后再次变化。 只有按下CTRL键,问题就消失了。

任何想法为什么发生?

非常感谢

这是从WinForms应用程序创建WPF窗口时的标准行为。 幸运的是,Interop软件包还包含了解决这种奇怪问题的方法: ElementHost.EnableModelessKeyboardInterop 。 在创建WPF窗口之后,但在调用其Show方法之前,请执行以下操作:

 public static void SetOwnerAndMakeTheKeyboardWork(this Window window, IntPtr ownerHandle) { if (ownerHandle != IntPtr.Zero) new WindowInteropHelper(window).Owner = ownerHandle; ElementHost.EnableModelessKeyboardInterop(window); }