WPF 悬浮键盘】的更多相关文章

原文:WPF 悬浮键盘 public class TouchScreenKeyboard : Window { #region Property & Variable & Constructor private static double _WidthTouchKeyboard = 830; public static double WidthTouchKeyboard { get { return _WidthTouchKeyboard; } set { _WidthTouchKeybo…
之前做了一款WPF虚拟键盘,调用Win32的API,可以模拟键盘事件. 现将代码分享如下: 按键布局如下: <Button Name="> <StackPanel Orientation="Vertical" HorizontalAlignment="Left" VerticalAlignment="Top" > <TextBlock HorizontalAlignment="Left"…
WPF 自带的键盘焦点样式是与传统控件样式搭配的,但 WPF 凭着其强大的自定义样式的能力,做出与传统控件样式完全不同风格的 UI 简直易如反掌.这时,其自带的键盘焦点样式(FocusVisualStyle)就非常不搭了,改改会舒服得多.比如,改成 UWP 的样式. 本文将展示 WPF 自定义键盘焦点样式自定义的坑! ▲ WPF 自带的键盘焦点样式 ▲ UWP 暗主题键盘焦点样式 其实微软官方文档 Styling for Focus in Controls, and FocusVisualSty…
场景:用WPF做触屏的软件难免会需要用户输入的问题,至少是简单的数字,这个时候就免不了需要键盘输入. 思路:既然是虚拟键盘,那么我的目的就是模拟键盘输入即可. 1.模拟键盘输入 模拟键盘输入?那么肯定免不了调用Win32API了.所以查看下Win32API是否提供了键盘输入的功能,找到发送按键的函数: [DllImport("user32.dll", EntryPoint = "PostMessageW")]public static extern int Post…
需求:按下回车键,触发事件. 搜MSDN时,看到的键盘事件是System.Windows.Forms里的,在WPF中没法用: https://msdn.microsoft.com/zh-tw/library/system.windows.forms.control.keydown(v=vs.110).aspx WPF中的键盘事件用法如下: 在需要监听键盘事件的界面XAML中注册键盘按下的事件KeyDown=”LoginWindow_KeyDown”. 后台代码处理对不同键盘的响应: privat…
键盘钩子是一种可以监控键盘操作的指令. 看到这句话是不是觉得其实键盘钩子可以做很多事情. 场景 当你的程序需要一个全局的快捷键时,可以考虑使用键盘钩子,如大家常用qq的截图快捷键,那么在WPF里怎么去实现呢? 当然不是直接在Window窗体里面去注册KeyDown.KeyUp,这样只有在程序是焦点的情况下才能触发, 我们这里要做的更为强大,即在非焦点下去获取到键盘的事件(要偷偷记录女朋友键盘记录的滚粗,当然我是在开玩笑,程序猿哪里有女朋友,我们只有男朋友(⊙0⊙)) 实现 首先我们需要用到这么几…
最近修改的一个需求要求捕获键盘输入的 Text,包括各种标点符号. 最开始想到的是 PreviewKeyDown 或者 PreviewKeyUp 这样的键盘事件. 但是这两个事件的对象 KeyEventArgs 不够用,得依靠判断 Key 来判断输入了什么,然后再根据判断写死一个相应键位的 Text 来获取数据. 如组合键获取 乘号键 需要用到 Shift + 8(数字键盘那的乘号键是 Key.Multiply ,而需要在主键盘位获取则需要用到组合键) 1 private void Window…
又到了写点东西的时候,因为有了新的收获,所以用随笔来记录下自己的成长.话不多说,正入主题. 最近又遇到一个新的需求,有一组控件,需要悬浮显示在面板的边缘上,刚开始的时候,是不显示的,点击后显示,然后再次点击,隐藏.就这么一个功能,折腾了一天. 实现的方法很多,本次使用了DevExpress里面的DockLayoutManager控件.从DevExpress的官网上下载了一个Demo,然后学习了下.DevExpress的控件使用,搜索资料好像不多,当然也可能是我的搜索方法不对. <Window x…
对外部程序,以记事本为例,xaml中设置模拟按键的控件 Focusable="False": /// <summary> /// 发送按键 /// </summary> /// <param name="asiiCode">键盘ascii码</param> private void SendKey(byte asiiCode) { try { ; AttachThreadInput(true, ref getFocus…
/// <summary>        /// 阻止 alt+f4和alt+space 按键        /// </summary>        /// <param name="e"></param>        protected override void OnKeyDown(System.Windows.Input.KeyEventArgs e)        {            if (Keyboard.Modi…