Jor*_*ris 5 c# wpf menu shortcut
我已经有了以下内容:
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);
Run Code Online (Sandbox Code Playgroud)
这会导致我的上下文菜单显示退出菜单项,并带有下划线“x”。但是,按 x 没有任何作用。单击菜单项工作正常。
如何将事件与 x 键关联?请注意,这必须在我的上下文中以编程方式完成。我无法在前面的 XAML 中编写此解决方案。
小智 3
添加快捷方式的常用方法如下:
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));
Run Code Online (Sandbox Code Playgroud)
这里使用的RelayCommand类 不是 WPF 的一部分,但它广泛用于基于 MVVM 的应用程序中。
但请注意,如果没有修饰符,您无法将快捷方式设置为 X。引用自MSDN
在大多数情况下,KeyGesture 必须与一个或多个 ModifierKey 关联。此规则的例外是功能键和数字键盘按键,它们本身可以是有效的 KeyGesture。例如,您可以仅使用 F12 键创建 KeyGesture,但要在 KeyGesture 中使用 X 键,它必须与修饰键配对。
如果由于某种原因您需要使用 X w/o 修饰符 - 您将必须处理键盘事件(例如 KeyDown)并做出相应的反应
| 归档时间: |
|
| 查看次数: |
6359 次 |
| 最近记录: |