WPF 窗体快捷键(热键)

2021-01-20 10:14

阅读:738

标签:NPU   dbi   键盘   default   command   binding   str   16px   开发   

前言:在WPF项目开发当中,遇到了需要用到快捷键的需求,于是对热键做了一个快速学习,但是这方面的资源很少。。。


 热键大致分为三种场景,下面用QQ的使用场景举例:

全局热键:QQ的Ctrl+Alt+A截图

焦点热键:QQ消息栏的Shift+Enter文本换行

窗体热键:Alt+F4关闭QQ的窗口。

 

在WPF当中,全局热键焦点热键都可以轻松实现,下面我只对窗体热键进行讲解。

第一步:右键项目根目录 引用 —> 管理Nuget程序包 —> 搜索NHotkey.Wpf并下载安装

注册命令推荐加在Window(Page和UserControl中需要鼠标点击焦点后才能触发热键)废话少说,看代码:

XAML中:

    Window.Resources>
        RoutedUICommand x:Key="WinKeyDown" Text="F1" />
        
    Window.Resources>
    Window.InputBindings>
        KeyBinding Gesture="F1" Command="{StaticResource WinKeyDown }" HotkeyManager.RegisterGlobalHotkey="True"/>
        
    Window.InputBindings>
    Window.CommandBindings>
        CommandBinding Command="{StaticResource WinKeyDown}"
                   CanExecute="CommandBinding_CanExecute"/>
        
    Window.CommandBindings>

后台代码:

        //窗体热键
        private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e)
        {
            switch (((System.Windows.Input.RoutedUICommand)e.Command).Text) 
            {
                case "F1":
                    MessageBox.Show("deep dark fantasy");
                    break;
                default:
                    return;
            }
        }

就是这样,现在即使你的应用程序没有焦点,热键绑定的命令也将被调用。

WPF 窗体快捷键(热键)

标签:NPU   dbi   键盘   default   command   binding   str   16px   开发   

原文地址:https://www.cnblogs.com/Stay627/p/12134195.html


评论


亲,登录后才可以留言!