首页 > 其他分享 >WPF 获取键盘点击值、组合键方式

WPF 获取键盘点击值、组合键方式

时间:2023-09-12 12:25:42浏览次数:41  
标签:组合键 F1 Shift 键盘 获取 keyValue Key WPF

在xmal.cs文件中实现,或者重写OnPreviewKeyDown()方法:

string codeValue = "";

int InputCount = 0;
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
    int keyValue = Convert.ToInt32(e.Key);
    if (keyValue == 156)
    keyValue = Convert.ToInt32(e.SystemKey);
    if (e.Key == Key.Up)
    {
         e.Handled = true;
         ScrollToVerticalOffset("up");
    }
    if (e.Key == Key.Down)
    {
         e.Handled = true;
         ScrollToVerticalOffset("down");
    }

  
   //获取组合键,如Shift+F1【操作:按下Shift,同时按下F1】

    if (e.KeyStates == Keyboard.GetKeyStates(Key.F1) && Keyboard.Modifiers == ModifierKeys.Shift)
    {
      codeValue = "Shift+F1";

    }


  //获取数字组合键,如200,201等【操作:依次按2 0 0 】 if (e.Key.ToString().Contains("NumPad") || (keyValue >= 34 && keyValue <= 43)) { string keyCode = e.Key.ToString().Substring(e.Key.ToString().Length - 1, 1); if (int.TryParse(keyCode, out int tmp))//如果转换失败(为false)时输出括号内容 { codeValue += keyCode; InputCount += 1; } else { codeValue = ""; InputCount = 0; } if (Core.Definition.QuickKeyManager.Instance.Exec(this.GetType(), 0, codeValue)) { e.Handled = true; codeValue = ""; InputCount = 0; } if (InputCount == 3) { codeValue = ""; InputCount = 0; } return; } if (Core.Definition.QuickKeyManager.Instance.Exec(this.GetType(), keyValue)) e.Handled = true; codeValue = ""; InputCount = 0; base.OnPreviewKeyDown(e);
}

  

标签:组合键,F1,Shift,键盘,获取,keyValue,Key,WPF
From: https://www.cnblogs.com/jnyyq/p/17695831.html

相关文章

  • 【愚公系列】2023年09月 WPF控件专题 Canvas控件详解
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(2)
    在前面随笔《循序渐进介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发(1)》中介绍了Mvvm的开发,以及一些界面效果,本篇随笔继续深入探讨基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发,介绍如何整合SqlSugar框架的基础接口,通过基类继承的方式,简化实际项目......
  • WPF DataGrid控件扩展
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Controls;usingSystem.Windows.Controls.Primitives;usingSystem.Windows.Media;namespaceControls.Helper{publicstaticclassDataGridExtensi......
  • WPF 用于查找控件的工具类:找到父控件、子控件
    WPF 封装查找控件的三个方法:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Windows;usingSystem.Windows.Media;namespaceK.Controls.Controls.Helper{///<summary>///用于查找控件的工具类:找到父......
  • Windows 禁用笔记本键盘
    背景笔记本键盘+机械键盘组合如下图:由此产生一个问题:笔记本键盘现在的用处是什么?没什么用,那我们何不把桌面的位置利用起来?......
  • 【愚公系列】2023年09月 WPF控件专题 DockPanel控件详解
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......
  • WPF 获取页面的子级
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Windows;usingSystem.Windows.Media; namespaceK.Controls.Controls.Helper{publicclassGetChildHelper{publicstaticTGetVisualCh......
  • WPF 获取资源文件帮助类
    usingSystem;usingSystem.Reflection;usingSystem.Windows;namespaceK.Controls.Controls.Helper{publicclassResourceHelper{privatestaticResourceDictionary_theme;internalstaticTGetResourceInternal<T>(stringkey)......
  • WPF 使用Image实现动画旋转Loading
    首先需要有一个Loading的图片,(白色背景,白色小圆圈,所以显示看不到): 创建一个用户控件,实现动画的功能:<UserControlx:Class="K.Controls.Controls.LoadingImage"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http:/......
  • WPF绑定(Binding)(4)
    数据绑定组件之间的绑定<StackPanel><Sliderx:Name="sd"Width="200"/><TextBoxText="{BindingElementName=sd,Path=Value}"/></StackPanel> 绑定数据源<Window.Resources>......