zoukankan      html  css  js  c++  java
  • [WPF 学习] 11.虚拟键盘之庸人自扰

    在带键盘鼠标的电脑上编写应用于触屏电脑的项目,为了能输入中文、英文、数字等各种庸人自扰。

    一、自己画了个键盘
    为了实现能输入中文,还简单编写了个拼音输入法,各种折腾,始终不是很舒服。最后客户要求手写输入中文,于是就完全放弃了。

    二、折腾TabTip.exe
    win10的虚拟键盘是一个程序,即c:Program FilesCommon FilesMicrosoft SharedinkTabTip.exe,文本框获得焦点后,运行如下代码

                    var file = "C:\Program Files\Common Files\microsoft shared\ink\TabTip.exe";
                    if (!System.IO.File.Exists(file))
                        return;
                    Process.Start(file);
    

    有时候会失效,后来发现要先杀进程,于是

                foreach (var process in Process.GetProcessesByName("TabTip"))
                    process.Kill();
    
                    var file = "C:\Program Files\Common Files\microsoft shared\ink\TabTip.exe";
                    if (!System.IO.File.Exists(file))
                        return;
                    Process.Start(file);
    

    似乎可以了,接着就像能不能弹出数字键盘、只输入英文等,又是各种百度、查看注册表等等,居然查到一篇文章WPF 禁用TextBox的触摸后自动弹出虚拟键盘,触摸是关键,晕。

    于是以为要平板模式的时候能自动弹出虚拟键盘,后来发现无键盘和鼠标的win10里面居然还有个“不处于平板电脑模式且未连接键盘时显示触摸键盘”的开关,于是一切都变得简单了。

    三、直接控制TextBox

    <TextBox  Name="tb1" FontSize="50" HorizontalContentAlignment="Center" InputMethod.IsInputMethodEnabled="True"  InputMethod.InputScope="Digits"/>
    <TextBox  Name="tb2" FontSize="40" InputMethod.IsInputMethodEnabled="True" InputMethod.InputScope="PersonalFullName"/>
    

    tb1获得焦点的时候(触摸或者tb1.Focus())自动显示虚拟键盘的数字界面

    tb2获得焦点的时候自动显示全键盘

    一定要触摸,鼠标单击按钮然后执行tb1.Focus()失效

  • 相关阅读:
    图片中添加文字
    几种经典的滤波算法(转)
    OPENCV初试
    图像处理和图像识别中常用的OpenCV函数
    SIP开发
    【转】opencv老是卡在某一层,
    大电子文件读取成二进制流方案
    C# 调试方法之即时窗口输出
    关于如何解锁你的WP7,以便安装自己开发的程序。
    Windows phone 7 之初体验(一.安装Windows phone 7 sdk)
  • 原文地址:https://www.cnblogs.com/catzhou/p/12654489.html
Copyright © 2011-2022 走看看