给按钮添加快捷键

18 浏览
0 Comments

给按钮添加快捷键

我如何在wpf中为按钮添加快捷键?

我有三个带有“新建”按钮的窗口,我想为它们都添加Ctrl+N或其他快捷键。

0
0 Comments

在这个问题中,出现的原因是想要为按钮添加快捷键,解决方法是在窗口中编写指示快捷键的方法,并在XAML文件中设置快捷键。

为了解决这个问题,你可以按照以下方法进行操作。在窗口中编写指示快捷键的方法,代码如下:

private void shortcutKey_Click(object sender, System.Windows.Input.KeyEventArgs e)
{
    if ((e.Key == Key.N) && (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)))
        ProjMnuBtn_AddProj_Click(null, null);
}

然后在XAML文件中设置快捷键,代码如下:

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Width="1280" Height="920" KeyUp="shortcutKey_Click">
</Window>

如果想要将快捷键添加到多个窗口中,你需要在每个窗口中编写上述代码。

0
0 Comments

问题出现的原因:

用户想要为按钮添加快捷键,以便通过按下快捷键来执行按钮的命令。然而,在给定的代码示例中,只为一个窗口添加了快捷键。

解决方法:

要为多个窗口添加快捷键,可以编写一个继承自Window或UserControl的子类。然后,在这个子类中实现上述代码中的相关内容,并在需要的窗口中使用这个子类代替默认的窗口。这样,每个窗口都将具有相同的快捷键功能。

以下是示例代码:

public class YourWindow : Window
{
    public YourWindow()
    {
        CommandBinding helpBinding = new CommandBinding(ApplicationCommands.Help, HelpExecuted, HelpCanExecute);
        InputBinding helpInputBinding = new InputBinding(ApplicationCommands.Help, new KeyGesture(Key.H, ModifierKeys.Control));
        this.CommandBindings.Add(helpBinding);
        this.InputBindings.Add(helpInputBinding);
    }
    private void HelpExecuted(object sender, ExecutedRoutedEventArgs e)
    {
        // 执行帮助命令的操作
    }
    private void HelpCanExecute(object sender, CanExecuteRoutedEventArgs e)
    {
        // 检查帮助命令是否可以执行的条件
    }
}

通过使用这个自定义的窗口类YourWindow,可以在不同的窗口中添加相同的快捷键功能。

希望这个解决方法对您有帮助!

0