WPF 设置窗体ALT 快捷键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF 设置窗体ALT 快捷键相关的知识,希望对你有一定的参考价值。

WPF 不能像WINFORM 一样设置ALT 快捷键么

参考技术A 绑定KeyDown事件啊追问

这个我知道 但是像winform中 有快捷建 会在快捷键下面画一个横线 这个能实现么

参考技术B 不能!!!!!!!!!!!!!1111111追问

大哥不要回答这么肯定好不 实现是肯定能实现的

WPF 快捷键(窗体)

原文:WPF 快捷键(窗体)

前言:在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" />
        <!--WinKeyDown是静态资源名,F1是你的热键的代名词(随便起)用来后台接收-->
    </Window.Resources>
    <Window.InputBindings>
        <KeyBinding Gesture="F1" Command="{StaticResource WinKeyDown }" HotkeyManager.RegisterGlobalHotkey="True"/>
        <!--F1是键盘上的热键,核心属性HotkeyManager.RegisterGlobalHotkey="true" 加入即可无需焦点就可以触发热键,也不会发生全局热键的情况-->
    </Window.InputBindings>
    <Window.CommandBindings>
        <CommandBinding Command="{StaticResource WinKeyDown}"
                   CanExecute="CommandBinding_CanExecute"/>
        <!--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;
            }
        }
技术图片

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

就可以实现Ctrl+S保存,F5刷新等下意识操作。

搬运转发请链接注明出处。

以上是关于WPF 设置窗体ALT 快捷键的主要内容,如果未能解决你的问题,请参考以下文章

WPF 窗体快捷键(热键)

WPF 窗体快捷键(热键)

C#窗体及控件的快捷键 设置

wpf阻止键盘快捷键alt+space,alt+F4

wpf中button怎么设置快捷键

C#winform如何将隐藏的主窗体,用windows快捷键显示出来,如QQ按Ctr+Shift+alt即显示出来