我不确定您在这里所说的“全局”是什么意思,但是它就可以了(我假设您是在应用程序级别指的是命令,例如, 保存所有 可以通过
Ctrl+
Shift+ 从任何地方触发的命令
S)。
您可以找到
UIElement自己选择的全局对象,例如,顶层窗口,该窗口是需要此绑定的所有控件的父级。由于WPF事件的“冒泡”,子元素处的事件将一直冒泡直到控制树的根。
现在,首先您需要
- 使用
InputBinding
这样的命令将键组合与命令绑定 - 然后,您可以通过将该命令连接到您的处理程序(例如调用的代码
SaveAll
)CommandBinding
。
对于
Windows密钥,请使用正确的密钥枚举成员,
Key.LWin或者
Key.RWin
public WindowMain() { InitializeComponent(); // Bind Key InputBinding ib = new InputBinding(MyAppCommands.SaveAll,new KeyGesture(Key.S, ModifierKeys.Shift | ModifierKeys.Control)); this.InputBindings.Add(ib); // Bind handler CommandBinding cb = new CommandBinding( MyAppCommands.SaveAll); cb.Executed += new ExecutedRoutedEventHandler( HandlerThatSavesEverthing ); this.CommandBindings.Add (cb ); } private void HandlerThatSavesEverthing (object obSender, ExecutedRoutedEventArgs e) { // Do the Save All thing here. }


