【问题标题】:On Screen Keyboard auto pop up屏幕键盘自动弹出
【发布时间】:2015-12-09 07:46:20
【问题描述】:

当用户单击 WPF 上的 TextBox 字段时,有没有办法在屏幕上自动弹出键盘?
如果可能的话,它可以在整个应用程序中运行吗?

【问题讨论】:

    标签: c# wpf popup auto-populate on-screen-keyboard


    【解决方案1】:

    在 TextBox 焦点上你可以使用

    XAML

    <TextBox Name="TxtBxName" GotFocus="TxtBxName_GotFocus" />
    

    C#

    private void TxtBxName_GotFocus(object sender, RoutedEventArgs e)
    {
        Process[] pname = Process.GetProcessesByName("notepad");
        if (pname.Length == 0)
            System.Diagnostics.Process.Launch("osk.exe");
    }
    

    调用 Windows 自带的屏幕键盘应用程序

    在失去焦点的情况下,您应该终止进程

    【讨论】:

    • 还要检查它是否已经没有运行,否则如果多次重新获得焦点,您最终会运行多个实例。当焦点从文本框移开时关闭进程会更好
    • 可能是个愚蠢的问题,但我如何在 Focus() 中使用它?
    • 打开小键盘。我想要标准平板电脑。
    • 如果您打算在设备上运行该应用程序,当光标到达文本框时它会自动执行,如果您在 Windows 上运行该应用程序,它是默认键盘可用可以使用的窗口。
    • 问题是,当光标在文本框中时,它不会在 windows 10 平板电脑上启动触摸键盘
    【解决方案2】:

    我已经汇总了你所有的答案以及适合我的方法:

        private void OpenOSK()
        {
            try
            {
                Process.Start("TabTip.exe");
            }
            catch
            {
    
            }
        }
    
        private void _textBox_GotFocus(object sender, RoutedEventArgs e)
        {
            OpenOSK();
        }
    

    【讨论】:

      猜你喜欢
      • 2011-01-30
      • 2011-02-03
      • 1970-01-01
      • 1970-01-01
      • 2021-01-16
      • 1970-01-01
      • 2011-06-15
      • 2018-06-15
      • 2011-06-07
      相关资源
      最近更新 更多