簡體   English   中英

Windows 7上的WPF應用程序僅在按下CTRL鍵后才會正常響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM