我已经有以下内容:
var myContextMenu = new System.Windows.Controls.ContextMenu();
var exitItem = new MenuItem();
exitItem.Header = "E_xit";
exitItem.Item.Click += new RoutedEventHandler(new System.EventHandler(ExitProgram));
myContextMenu.Items.Add(exitItem);
这导致我的上下文菜单显示“退出”菜单项,并带有下划线“x”。但是,按 x 不会执行任何操作。单击菜单项效果很好。
如何将事件与 x 键关联?请注意,这必须在我的上下文中以编程方式完成。我无法在前面的 XAML 中编写此解决方案。
添加快捷方式的常用方法如下:
var exitCommand = new RelayCommand(_ => ExitProgram());
var exitItem = new MenuItem();
exitItem.Header = "E_xit";
exitItem.Command = exitCommand;
myContextMenu.Items.Add(exitItem);
InputBindings.Add(new KeyBinding(exitCommand, new KeyGesture(Key.X, ModifierKeys.Alt));
The 中继命令 http://msdn.microsoft.com/en-us/magazine/dd419663.aspx#id0090030这里使用的类不是 WPF 的一部分,但它广泛用于基于 MVVM 的应用程序中。
但请注意,如果没有修饰符,您无法将快捷方式设置为 X。
引用自MSDN http://msdn.microsoft.com/en-us/library/system.windows.input.keygesture.aspx
在大多数情况下,一个 KeyGesture 必须与一个或多个关联
修改键。此规则的例外情况是功能键和
数字键盘按键,可以是有效的 KeyGesture
他们自己。例如,您可以仅使用
F12 键,但要在 KeyGesture 中使用 X 键,它必须与
修改键。
如果由于某种原因您需要使用 X w/o 修饰符 - 您将必须处理键盘事件(例如 KeyDown)并做出相应的反应
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)