【发布时间】:2011-06-06 05:10:22
【问题描述】:
基本上我想创建一个在窗口范围内有效的键盘快捷键,而不仅仅是在焦点位于绑定它的控件内时启用。
更详细....
我有一个包含 3 个控件的窗口:
- 工具栏
- 一个文本框
- 自定义控件
工具栏有一个绑定到命令CustomCommands.CmdA 的按钮,并链接到键盘快捷键Ctrl+T。
我的自定义控件可以处理CmdA。当我运行应用程序并单击我的自定义控件时,CmdA 已启用并且工作正常。 Ctrl+T 也会导致命令触发。
但是,当我选择文本框时,我的自定义命令 CmdA 被禁用。
我可以通过为CmdA 的按钮设置命令目标来纠正这个问题。现在,当我选择文本框时,CmdA 仍处于启用状态。
但是键盘快捷键 Ctrl+T 什么都不做。
是否有任何简单的方法可以更改键盘快捷键的范围?或者我是否需要在较低的某个地方捕捉按键,并计算出它与哪个命令相关并自己路由它(如果是的话,是否有一个框架可以做到这一点?)
【问题讨论】:
标签: wpf keyboard-shortcuts routed-commands icommand