2012-10-24 3 views
0

안녕하세요. 읽고 고맙습니다.WPF Ctrl + N 작동하지 않음

키오스크 스타일의 WPF 응용 프로그램에 웹 브라우저가 내장되어 있으며 사용자가 Ctrl + O 또는 Ctrl + N 키보드 단축키를 사용하여 내가 제한된 페이지를 우회하는 것을 방지하려고합니다. 내가 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; 
     } 
    } 
} 

이벤트 핸들러가 제대로 게재되지만 e.Key은 키가 아닌 Key.Control입니다 :

다음은 응용 프로그램의 최상위 창에 내 코드입니다. 엔. Ctrl 단추를 눌렀을 때 (예상대로) 이벤트가 즉시 트리거되지만 N 키를 캡처하지 못하는 것 같습니다. 나는 Keyboard.IsKeyDown (Key.N)을 사용해 보았는데 false도 반환한다.

모든 조언이나 제안을 환영합니다.

감사합니다,

아담

편집 : 나는 또한 브라우저 자체에 NewWindow, NewWindow2 및 NewWindow3 이벤트를 사용하여 새 창을 방지하기 위해 노력했다. 거기도 운이 없다.

답변

0

글쎄, 나는 완전히 마비 된 두개골처럼 느껴진다. 다음 코드 줄을 추가하는 것만 큼 간단합니다. 나는 이것이 내가 그렇게 아주 복잡해진 해결책을 시도하고있는 다른 사람들에게 도움이되기를 바랍니다.

 browser.WebBrowserShortcutsEnabled = false; 
관련 문제