0

我已经创建了我的自定义命令NewEdit并且Delet,我设置了这个热键InputBinding,但是当我每次都需要使用我的命令时,它是非常辛苦的

Copy命令示例,我不需要设置热键,但它有默认热键 Ctrl+C

如何为我的客户命令设置默认热键 Ctrl+N、Ctrl+E 和 Ctrl+D?

public static class HWCommand
{
    static RoutedUICommand save = new RoutedUICommand("Save", "Save", typeof(HWCommand));
    static RoutedUICommand novo = new RoutedUICommand("Novo", "Novo", typeof(HWCommand));
    static RoutedUICommand deletar = new RoutedUICommand("Deletar", "Deletar", typeof(HWCommand));
    static RoutedUICommand editar = new RoutedUICommand("Editar", "Editar", typeof(HWCommand));

    public static RoutedUICommand Save { get { return save; } }
    public static RoutedUICommand Novo { get { return novo; } }
    public static RoutedUICommand Deletar { get { return deletar; } }
    public static RoutedUICommand Editar { get { return editar; } }
}

我的命令绑定

<Window.CommandBindings>
    <CommandBinding Command="{x:Static hw:HWCommand.Novo}" Executed="NovoCommand_Executed"/>
    <CommandBinding Command="{x:Static hw:HWCommand.Editar}" Executed="EditarCommand_Executed" CanExecute="EditCommand_CanExecuted"/>
    <CommandBinding Command="{x:Static hw:HWCommand.Deletar}" Executed="DeletarCommand_Executed" CanExecute="DeletarCommand_CanExecuted"/>
</Window.CommandBindings>
4

1 回答 1

2

您可以为您的使用不同的构造函数RoutedUICommand

RoutedUICommand(String, String, Type, InputGestureCollection)

你可以InputGestureCollection像这样指定:

static RoutedUICommand novo = new RoutedUICommand(
                                     "Novo", 
                                     "Novo", 
                                     typeof(HWCommand), 
                                     new InputGestureCollection(
                                         new InputGesture[] { new KeyGesture(Key.N, ModifierKeys.Control) }
                                     ));
于 2013-09-21T15:10:38.863 回答