2013-07-31 1 views
3

데스크톱 용 Visual Studio 2012 Express를 사용하여 WPF (미디어 플레이어)에 작은 응용 프로그램을 넣으려고하고 스페이스 바를 사용하여 일시 중지하려고합니다. 안타깝게도, 스페이스 바 (space bar)와 엔터 키는 윈도우에서 가장 최근의 이벤트를 다시 실행하거나 다시 올리는 기본 동작을합니다. 버튼 클릭, 키 누르기 등).기본 입력 및 스페이스 키 동작 wpf 응용 프로그램

모든 조합에서 OnKeydown, OnKeyUp, OnPreviewKeyDown 및 OnPreviewKeyUp를 재정의하려했지만 무시하지 않아도이 동작이 제거됩니다. 또한 필자가 작성한 다른 WPF 응용 프로그램에서도 마찬가지이며 몇 달 전에 Windows Forms 응용 프로그램에서도 마찬가지라는 것을 알았습니다. Visual Studio로 작성된 모든 응용 프로그램의 기본 기능입니까? 그리고 더 중요한 것은 그것을 없애는 방법이 있을까요?

답변

2

OnPreviewKeyDown을 덮어 쓰면 원하는 로직을 추가 한 다음 e.Handledtrue으로 설정하면 이벤트가 버블 링되어 표시되는 동작을 방해하지 않습니다.

private void Window_PreviewKeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Key == Key.Enter || e.Key == Key.Space) 
    { 
     //Your Logic 
     e.Handled = true; 
    } 
} 
+0

매력처럼 작동합니다. 도와 주셔서 정말 감사합니다. – user2639158

관련 문제