博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在WPF中快速实现键盘钩子
阅读量:6427 次
发布时间:2019-06-23

本文共 637 字,大约阅读时间需要 2 分钟。

原文:

大部分的时候,当我们需要键盘事件的时候,可以通过在主窗口注册KeyBinding来实现,不过,有的时候我们需要的是全局键盘事件,想在任何一个地方都能使用,最开始的时候我是通过键盘钩子来实现的, 不过键盘钩子这种DLL调用的方式怎么都看着不大爽,这里介绍一种通过EventManager快速实现键盘事件感知的例子。

public class KeyboardEvents    {        public static event Action
OnKeyDown; static KeyboardEvents() { EventManager.RegisterClassHandler(typeof(Window), UIElement.KeyDownEvent, (KeyEventHandler)onKeyDown); } private static void onKeyDown(object sender, KeyEventArgs e) { if (OnKeyDown != null) OnKeyDown(e); } }

这里只是一个简单的例子,要实现键盘输入拦截也可以用这种方式实现,感知PreviewKeyDownEvent即可,这里就不多介绍了

转载地址:http://tsfga.baihongyu.com/

你可能感兴趣的文章
Stream
查看>>
翻译--Thinking in React
查看>>
JavaScript中this指向问题
查看>>
JPA或Hibernate中的
查看>>
web_find和web_reg_find 区别(转载)
查看>>
请设计一个算法能够完成两个用字符串存储的整数进行相加操作,对非法的输入则返回error...
查看>>
开博宣言
查看>>
【目录】 软件测试全栈需要学习什么? 软件测试的各个阶段 ,软件测试学习路径,软件测试方向选择,软件测试的薪资待遇。...
查看>>
CSS3动画【归纳总结】
查看>>
Web应用程序项目 已配置为使用IIS
查看>>
ElasticSearch-倒排索引
查看>>
Algs4-2.1.18可视轨迹-选择排序
查看>>
Algs4-2.2.5自顶向下和自底向上的归并排序的子数组和大小
查看>>
ASP.NET温故而知新学习系列之ASP.NET多线程编程—.NET下的多线程编程Thread中委托的使用(六)...
查看>>
Django完整的登录示例,APP,ORM介绍和使用
查看>>
使用 Spring HATEOAS 开发 REST 服务
查看>>
最新整理知识结构图
查看>>
linux安装mysql
查看>>
flask 2 进阶
查看>>
JS 循环遍历JSON数据
查看>>