如何在RoutedUICommand上设置CommandTarget,通过KeyGesture执行?

时间:2017-10-24 07:22:16

标签: c# wpf routed-commands

在每个ICommandSource上,您可以设置CommandTarget属性。如果是RoutedUICommand s,则表示将使用此目标而不是KeyBoard.FocusedElement

因此,对于示例,请执行以下命令:

public static class MyCommands
{
    static MyCommands()
    {
        Test = new RoutedUICommand("Test Command", nameof(Test), typeof(MyCommands));
        Test.InputGestures.Add(new KeyGesture(Key.Escape));
    }
    public static RoutedUICommand Test { get; }
}

所以CommandTarget可以像这样设置:

<Button Command="{x:Static local:MyCommands.Test}" CommandTarget="{Binding }" />

但是,如果用户按下转义按钮,则KeyBoard.FocusedElement将用作CommandTarget

如何通过CommandTarget激活RoutedUICommand时更改KeyGesture

0 个答案:

没有答案