2011-01-14 4 views
0

WPF 응용 프로그램에 Acrobat Reader가 포함되어 있으며 일부 작업을 수행 할 단축키가 여러 개 정의되어 있지만 단축키는 텍스트 상자 안에있을 때만 작동합니다. 필자는 Adobe Acrobat Reader가 단축키를 가져 오기 때문에 필자가 알아야 할 것은 Ctrl-Shift-s를 함수에 매핑하면 텍스트 상자 내에서 해당 함수를 호출 할 때 포커스가없는 경우이므로 텍스트 상자에 Adobe의 저장 함수가 호출됩니다.WPF : 구성 요소가 바로 가기 키를 사용합니다.

MainWindow에 정의 된 단축키가 Acrobat Reader 또는 다른 어떤 단축키도 아닌지 어떻게 확인할 수 있습니까?

건배

포함 된 Acrobat Reader가 귀하의 응용 프로그램 기본 설정에서 키보드 포커스 같은 소리 닉

답변

1

, 그래서 당신의 메인 윈도우가 무엇의 우선 리더에 그들을 제공하는 키 누름을 얻을 때, 포함 자체 메뉴 명령.

님께서는 리더가 포커스를 받고 키보드 단축키를 처리하기를 원하기 때문에 다소 어렵습니다. 기본 창에서 정의한 것과는 다른 것입니다.

MainWindow 클래스에서 OnKeyDown을 무시하고 Ctrl + Shift + S가 도착하는지 확인하십시오. 그렇다면 적절한 명령 이벤트 핸들러를 직접 호출하여 응답하고 MainWindow가 그 키를 다른 곳으로 보내지 못하도록 이벤트 인수에서 Handled를 true로 설정하십시오.

+0

재미있을 것 같습니다. 저는 Acrobat Reader에서 키보드 단축키가 필요하지 않습니다. 단 한 페이지 만보고 OCR 된 텍스트를 복사하는 데만 사용하겠습니다. (ok, ctrl-c가 필요 하겠지만, 그게다고 생각합니다 :-)) 내 응용 프로그램에서 키보드를 먼저 처리하고 키보드 포커스를 얻은 다음 응답하지 않으면 Acrobat에 남겨 둘 수있는 방법이 있습니까? OnKeyDown에 대한 팁을 보내 주셔서 감사합니다. :-) – niklassaers

+0

궁극적으로 응용 프로그램의 사용자가 키보드 포커스를 제어하고 Reader가 텍스트 선택 및 복사를위한 포커스를 받아야하므로 Reader에서 포커스를 벗어나지 않으려 고 노력하는 것이 효과가 없을 것이라고 생각합니다. 그러나 OnKeyDown 재정의에서 Reader가 처리하지 못하도록하려는 키보드 단축키의 이벤트 인수에서 Handled를 true로 설정할 수 있습니다. –