2010-08-25 32 views
2

這可能是一個簡單的問題,但我一直無法找到一個快速的答案。WPF窗體窗體主機鍵盤事件

我有一個WPF應用具有Windows窗體控件託管GeckoFX組件(其實並不重要)。

我想要做的是捕獲Windows窗體控件中的按鍵事件,並抓住某些特定組合鍵的WPF控件的焦點。 而如果我想從整個WPF應用程序窗口(甚至在Windows窗體控件內)捕獲事件呢? 我試着處理KeyDown事件和PreviewKeyDown事件,但無濟於事。

我想知道的是,如果這是可能的,應該如何做。如果需要,我可以發佈一些代碼。

回答

1

即使在窗體上的KeyDown也適用於非特殊鍵(如箭頭鍵)。使用PreviewKeyDown捕獲這些數據,或使用this solution。我不得不使用PreviewKeyDown。此外,我添加了一條線,以便在設計模式下不會中斷:

private void webBrowser1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) { 
    if (DesignMode) return; 
    if (!e.IsInputKey && e.Control && e.KeyCode == Keys.S) { 
    DoStuff(); 
    return; 
    } 
}