键盘事件有四个,PreviewKeyDown、PreviewKeyUp、KeyDown、KeyUp,

在事件中,对参数e的Key属性进行判定。

这里以一个TextBox的文本控件为例。检测到回车键给予提示。

1、在键盘事件中,检测单个按键

1、前台增加文本控件并增加键盘事件

2、后台的键盘抬起事件中加入

           if (e.Key == Key.Enter){MessageBox.Show("检测到回车键已按下");}

像这样:

同理,如果响应其它的键盘按键,在Key后面点  .  选择其它的键值。

2、在键盘事件中,响应组合键盘(两个或者两个以上)

这里以Ctrl + S为例

  1. 前台定义键盘事件
  2. 后台在事件中加入代码

有两种写法:

第一种:

1、同时按下了Ctrl + S键

2、修饰键只能按下Ctrl,如果还同时按下了其他修饰键,则不会进入

            if (e.KeyboardDevice.Modifiers == ModifierKeys.Control && e.Key == Key.S){MessageBox.Show("检测到Ctrl、S已按下");}

第二种:

1、同时按下了Ctrl + S键

2、修饰键只要按下Ctrl,不管是否还同时按下了其他修饰键,都会进入

  if (e.KeyboardDevice.Modifiers.HasFlag(ModifierKeys.Control) && e.Key == Key.H){MessageBox.Show("检测到Ctrl、S已按下");}

其中 ModifierKeys.Control后面的Control可换成其它四个

3、在非键盘事件中(也可在键盘事件中),检测单个或者多个键盘值

利用Keyboard类的静态方法IsKeyDown,完全脱离事件参数e,来检测判、断键盘按键

这种方式可以在任何事件中去检测多个组合按键或者单个按键。

            if (Keyboard.IsKeyDown(Key.LeftCtrl) && Keyboard.IsKeyDown(Key.LeftShift ) && Keyboard.IsKeyDown(Key.S)){//只要当下同时按下的键中包含LeftCtrl、LeftShift 和S ,就会进入}

4、对于具有开关性质的按键,比如大小写、数字键盘等键值状态判定

这里以数字键盘是否打开为例:

            if (KeyStates.Toggled == Keyboard.GetKeyStates(Key.NumLock)){}

判定左边为一个具体的状态,包括按下(Down)、打开(Toggled)、未打开(None)三种状态

判定的右边为要检测的键值

VS编程,WPF中响应键盘事件、检测键盘键是否按下的一种方法相关推荐

  1. WPF中的鼠标事件详解

    WPF中的鼠标事件详解 Uielement和ContentElement都定义了十个以Mouse开头的事件,8个以PreviewMouse开头的事件,MouseMove,PreviewMouseMov ...

  2. angularjs中按回车事件_浅谈angularjs中响应回车事件

    下面这个示例在输入框键入回车键或者点击按钮时,将输入框的值置为"Hello World!":(黄色背景内容为响应回车事件涉及到的代码) angularjs-demo test va ...

  3. JS--JavaScript使用键盘事件、键盘事件属性(keyCode、charCode、target...)、使用键盘控制页面元素

    键盘事件 当用户操作键盘时会触发键盘事件,键盘事件主要包括下面3种类型: keydown: 在键盘上按下某个键时触发.如果按住某个键,会不断触发该事件,但是Opera浏览器不支持这种连续操作.该事件处 ...

  4. 【EVENT】键盘事件:键盘控制元素移动

    对于一些简单的键盘游戏,比如森林冰火人.闪翼双星等等,都是用上下左右或WASD键来控制人物移动的.这类案例的实现思路很简单,使用键盘事件判断键码相等之后执行即可.下面我们来一起实现一下. 首先构造一个 ...

  5. WPF编程,将控件所呈现的内容保存成图像的一种方法。

    WPF编程,将控件所呈现的内容保存成图像的一种方法. 原文:WPF编程,将控件所呈现的内容保存成图像的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.ne ...

  6. VS开发中的代码编写小技巧——避免重复代码编写的几种方法

    原文:VS开发中的代码编写小技巧--避免重复代码编写的几种方法 上一篇文章中程序员的幸福生活--有你的日子,每天都是情人节,收到了大家的很多好评.鼓励和祝福,非常感动,真诚的谢谢大家.也希望每个朋友都 ...

  7. 数字字母下划线C语言,【判断题】C语言中的标识符只能由字母、数字和下划线三种字符组成,而且第一个字符只能是字母和下划线。...

    [判断题]C语言中的标识符只能由字母.数字和下划线三种字符组成,而且第一个字符只能是字母和下划线. 更多相关问题 计算机病毒按其寄生方式划分通常可分为().A.系统引导型病毒B.文件型病毒C. 在委托 ...

  8. 了解 WPF 中的路由事件和命令

    目录 路由事件概述 WPF 元素树 事件路由 路由事件和组合 附加事件 路由命令概述 操作中的路由命令 命令路由 定义命令 命令插入 路由命令的局限 避免命令出错 超越路由命令 路由处理程序示例 要想 ...

  9. WPF中的路由事件(转)

    出处:https://www.cnblogs.com/JerryWang1991/archive/2013/03/29/2981103.html 最近因为工作需要学习WPF方面的知识,因为以前只关注的 ...

  10. WPF UserControl响应PreviewKeyDown事件方法

    之前在一个项目中,Window窗口嵌入UserControl页面,在UserControl控件页面中添加PreviewKeyDown或者KeyDown事件,软件均不触发事件:在Window窗口可以响应 ...

最新文章

  1. XunSearch中常用方法整合
  2. html5shiv.js和respond.min.js的作用
  3. Flask-sqlalchemy连接数据库
  4. 【数据结构与算法】之柱状图中最大矩形的求解思路和算法示例
  5. Mybatis多参数封装到map中,多条件查询
  6. 拉斯维加斯算法结合八皇后问题
  7. (19)HTML5 <progress> 标签
  8. 多元线性回归的缺陷_轻松阅 | 多元线性回归的“参差不齐
  9. 云计算学习笔记003---Hadoop简介,hadoop实现原理,NoSQL介绍...与传统关系型数据库对应关系,云计算面临的挑战
  10. PyTorch学习—10.nn中网络层的具体使用
  11. ACDSee QuickView(图片浏览器)v1.2.42官方版
  12. matlab实现jpg图片转gif
  13. 有哪些计算机法人快捷键,tras企业版操作说明.doc-广东省国家税务局.doc
  14. OK6410移植UBOOT
  15. 在两台设备chrome之间同步自己的书签
  16. PHP数据库分表查询
  17. git@gitlab.com: Permission denied报错
  18. TechCrunch Disrupt大会:YouTube创始人陈士骏专访
  19. ffmpeg——简单播放器代码
  20. 聚类分析matlab

热门文章

  1. es文件浏览器smb服务器,ES文件浏览器怎么连接电脑SMB,可以参考这篇文章
  2. 张健和他的Fcoin
  3. ubuntu gnome桌面农历日历显示
  4. Iterative closest point (ICP) 算法
  5. Android 版本号及对应的版本名称
  6. 在电路中,耦合是什么?有哪些方式?
  7. 【51单片机STC89C52】LCD1602液晶屏的使用
  8. left floating
  9. Docker磁盘空间使用分析与清理
  10. 16S rDNA测序数据下载 | Qiime下载安装