2012-10-24 38 views
0

你好,感謝您的閱讀。WPF Catch Ctrl + N不工作

我在Kiosk風格的WPF應用程序中嵌入WebBrowser,我試圖阻止用戶能夠使用Ctrl + O或Ctrl + N鍵盤快捷鍵繞過我限制它們的頁面。

這裏是我的代碼是在應用程序的最上面的窗口:

// This is in the constructor of the window under InitializeComponent(); 
AddHandler(Keyboard.PreviewKeyDownEvent, (System.Windows.Input.KeyEventHandler)HandleKeyDownEvent); 

private void HandleKeyDownEvent(object sender, System.Windows.Input.KeyEventArgs e) 
{ 
    Key key = (e.Key == Key.System) ? e.SystemKey : e.Key; 
    if(e.KeyboardDevice.Modifiers == ModifierKeys.Control) 
    { 
     switch(key) 
     { 
     case Key.N: 
     case Key.O: 
     case Key.P: 
      MessageBox.Show("BOOM"); 
      break; 
     } 
    } 
} 

事件處理是否正確觸發,當我按下Ctrl + N,但e.Key是Key.Control不是重點。 N.當按下Ctrl按鈕時(如預期的那樣),看起來該事件立即觸發,但未能捕捉到N鍵。我曾嘗試使用Keyboard.IsKeyDown(Key.N),並返回false。

歡迎任何意見或建議。

感謝,

亞當

編輯:我也試圖避免在使用瀏覽器本身的NewWindow,NewWindow2和NewWindow3事件的新窗口。那裏也沒有運氣。

回答

0

嗯,我覺得像一個完整的麻木頭骨!事實證明,這與添加以下代碼行一樣簡單。我希望這有助於其他人可能會像我一樣嘗試非常複雜的解決方案。

 browser.WebBrowserShortcutsEnabled = false;