[英]WPF application on Windows 7 responds normally only after pressing CTRL key
我正在使用Windows 8開發一個WPF應用程序作為.NET 4.5的開發人員機器。 我還使用了一些DevExpress控件。
在開發人員計算機上,應用程序的UI響應正常。
當我在Windows 7上測試應用程序時,無論是使用虛擬機還是其他PC,都會顯示UI,但它沒有正常響應。 例如,我有一個DevExpress網格控件,當我點擊一行時,該行不會突出顯示為選中,當鼠標懸停按鈕和菜單時,也沒有任何反應。
當我按下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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.