我已经在我的WPF应用程序中嵌入了Acrobat Reader,并且我已经定义了几个我想做一些工作的热键,但是这些热键只有当我在文本框和类似的地方时才能工作。我发现这一定是因为Adobe Acrobat Reader在我之前获得了热键,因为如果我将ctrl-shift-s映射到一个函数,当我在文本框中按下它时,我的函数会被调用,但如果焦点不在文本框中,Adobe的save函数就会被调用。
如何确保为MainWindow定义的热键是执行的热键,而不是Acrobat Reader或其他任何东西的热键?
干杯
耐克
发布于 2011-01-14 20:36:13
这听起来就像你的应用程序中的键盘焦点默认是嵌入式Acrobat Reader,所以当你的主窗口获得按键时,它会将它们提供给Reader,而不是其他任何东西,包括它自己的菜单命令。
这有点困难,因为您可能希望Reader接收焦点并处理其键盘快捷键--而不是主窗口定义的快捷键。
尝试覆盖MainWindow类中的OnKeyDown,看看Ctrl+Shift+S是否到达那里。如果是,则通过直接调用适当的命令事件处理程序进行响应,并在事件参数上将Handled设置为true,以防止MainWindow将该键发送到其他任何地方。
https://stackoverflow.com/questions/4690896
复制相似问题