WPF获取键盘状态(如WPF组合键)

简介: 对于键盘事件(PreviewKeyDown,KeyDown,PreviewKeyUp,KeyUp)获取组合键等键盘信息比较容易 1、KeyEventArgs对象包含一个KeyStates属性,该属性反映触发事件的键的属性 2、KeyboardDevice属性为键 盘上的所有键提供了相同的信息,自然也提供了一个KeyboardDevice类的一个实例。

对于键盘事件(PreviewKeyDown,KeyDown,PreviewKeyUp,KeyUp)获取组合键等键盘信息比较容易

1、KeyEventArgs对象包含一个KeyStates属性,该属性反映触发事件的键的属性

2、KeyboardDevice属性为键 盘上的所有键提供了相同的信息,自然也提供了一个KeyboardDevice类的一个实例。它的属性包括当前是哪个元素具有焦点,以及当事件发生时按下了哪些修饰键(Modifiers)包括Shift、Ctrl、Alt键,并且使用位逻辑来检查它们的状态.

 


   private  void textBox_KeyDown_1( object sender, KeyEventArgs e)
        {
             if ((e. KeyboardDevice.Modifiers  &  ModifierKeys.Control) ==  ModifierKeys.Control)
            {
                MessageBox.Show( " 您按下了Control键 ");
            }
        }

对于检测具有开关功能的键,可以使用Keyboard类下的IsKeyToggled()方法来检测,例如:

 

  private  void textBox_KeyDown_1( object sender, KeyEventArgs e)
        {

             if (Keyboard.IsKeyDown(Key.NumLock))
            {
                MessageBox.Show( string.Format( " 您按下了NumLock键,当前状态为:{0} "Keyboard. IsKeyToggled(Key.NumLock)));
            }
        }

当然KeyboardDevice方法也提供了IsKeyDown方法,IsKeyUp方法,IsKeyToggled方法和GetKeyStates方法,例如:


if (e.KeyboardDevice.IsKeyDown(Key.NumLock))
{
      MessageBox.Show( string.Format( " 您按下了NumLock键,当前状态为:{0} ", e.KeyboardDevice.IsKeyToggled(Key.NumLock)));
}


 

 

目录
相关文章
|
前端开发 C# Windows
WPF鼠标、键盘、拖拽事件、用行为封装事件
本文主要介绍了WPF中常用的鼠标事件、键盘事件以及注意事项,同时使用一个案例讲解了拓展事件。除此之外,本文还讲述如何用行为(Behavior)来封装事件。
369 0
|
C#
C# WPF 中用代码模拟鼠标和键盘的操作
原文:C# WPF 中用代码模拟鼠标和键盘的操作   原文地址   C#开发者都知道,在Winform开发中,SendKeys类提供的方法是很实用的。
2259 0
|
API C# Windows
WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例
原文:WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例 键盘钩子是一种可以监控键盘操作的指令。 看到这句话是不是觉得其实键盘钩子可以做很多事情.   场景 当你的程序需要一个全局的快捷键时,可以考虑使用键盘钩子,如大家常用qq的截图快捷键,那么在WPF里怎么去实现呢? 当...
1471 0
|
C# Windows
WPF 窗体中获取键盘和鼠标无操作时的超时提示
原文:WPF 窗体中获取键盘和鼠标无操作时的超时提示 通过调用Windows API中的GetLastInputInfo来获取最后一次输入的时间 using System;using System.
908 0
|
C#
WPF 自定义键盘焦点样式(FocusVisualStyle)
原文:WPF 自定义键盘焦点样式(FocusVisualStyle) 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:http://blog.csdn.net/wpwalter/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
1358 0
|
C#
WPF 悬浮键盘
原文:WPF 悬浮键盘 public class TouchScreenKeyboard : Window { #region Property & Variable & Cons...
790 0
|
C#
wpf阻止键盘快捷键alt+space,alt+F4
原文:wpf阻止键盘快捷键alt+space,alt+F4    ///         /// 阻止 alt+f4和alt+space 按键        ///         ///         protected override void OnKeyDown(System.
1571 0
|
C#
WPF 捕获键盘输入事件
原文:WPF 捕获键盘输入事件 最近修改的一个需求要求捕获键盘输入的 Text,包括各种标点符号。 最开始想到的是 PreviewKeyDown 或者 PreviewKeyUp 这样的键盘事件。 但是这两个事件的对象 KeyEventArgs 不够用,得依靠判断 Key 来判断输入了什么,然后再根据判断写死一个相应键位的 Text 来获取数据。
1842 0
|
5月前
|
开发框架 缓存 前端开发
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件