kee*_*hee 2 c# wpf keyboard-shortcuts menuitem
我正在尝试使用我的xaml代码中的菜单项添加键盘快捷键
<MenuItem x:Name="Options" Header="_Options" InputGestureText="Ctrl+O" Click="Options_Click"/>
Run Code Online (Sandbox Code Playgroud)
用Ctrl+O
但它没有用 - 它没有调用Click选项.
这有什么解决方案吗?
InputGestureText只是一个文字.它没有绑定键MenuItem.
此属性不会将输入手势与菜单项相关联; 它只是将文本添加到菜单项.应用程序必须处理用户的输入以执行操作
您可以做的是RoutedUICommand在窗口中使用指定的输入手势创建
public partial class MainWindow : Window
{
public static readonly RoutedCommand OptionsCommand = new RoutedUICommand("Options", "OptionsCommand", typeof(MainWindow), new InputGestureCollection(new InputGesture[]
{
new KeyGesture(Key.O, ModifierKeys.Control)
}));
//...
}
Run Code Online (Sandbox Code Playgroud)
然后在XAML中将该命令绑定到命令对的某个方法集MenuItem.在这种情况下,两个InputGestureText并Header从拉RoutedUICommand,这样你就不需要设置,对MenuItem
<Window.CommandBindings>
<CommandBinding Command="{x:Static local:MainWindow.OptionsCommand}" Executed="Options_Click"/>
</Window.CommandBindings>
<Menu>
<!-- -->
<MenuItem Command="{x:Static local:MainWindow.OptionsCommand}"/>
</Menu>
Run Code Online (Sandbox Code Playgroud)