我有一個以前是獨立應用程序的WinForms表單,但現在正在作爲更大的WPF應用程序的一部分啓動。它仍然是一個單獨的窗口,不包含在WPF窗口中。我看到的問題是,窗口中的ProcessCmdKey事件從不再觸發,所以我在處理特殊命令鍵時遇到了問題。這用於正常工作,並且快捷方式處理代碼與之前沒有變化。ProcessCmdKey從不從WPF應用程序啓動的WinForms窗口觸發
問題的根源似乎是表單不再從WinForms Application.Run方法中被引用,因此它不再具有自己的消息循環。有沒有辦法解決這個問題,同時仍然有WPF和WinForms窗口共享一個UI線程,或者我將不得不爲WinForms窗口設置一個單獨的線程以使其工作?如果可能的話,我想避免它,因爲我必須爲所有現在通過簡單方法調用完成的事情設置跨線程通信。
我看到了,謝謝你的信息。在這種情況下,Z順序實際上不會成爲問題,因爲這些窗口是爲了在單獨的顯示器上全屏運行。代替一個乾淨的修復我現在已經應用了一個骯髒的修復。我已經註冊了我需要的幾個鍵作爲全局熱鍵(在user32.dll中使用RegisterHotKey),並且只有在Winforms窗口具有焦點時纔對它們進行操作。這似乎現在工作正常,我可能會在稍後的階段重寫WPF窗口。 – 2010-11-24 12:50:47