Programmatically open On-Screen Keyboard in UWP

2019-04-06 21:12发布

问题:

Is it possible in UWP to force it to open the On Screen Keyboard (osk.exe)?

For example, in C# it is possible using System.Diagnostics.Process.Start("osk.exe");

Doing the above in UWP results in compile error saying there is no Process namespace.

I know that in Tablet mode, if I programmatically focus on a TextBox, it will show up the OnScreen keyboard.

But is it possible when in Desktop mode?

回答1:

Is there a way for touchkeyboard to appear in desktop mode?

Ref the document in Keyboard interactions

Depending on the device, the touch keyboard appears when a text field or other editable text control gets focus, or when the user manually enables it through the Notification Center:

Note The user might have to go to the Tablet mode screen in Settings > System and turn on "Make Windows more touch-friendly when using your device as a tablet" to enable the automatic appearance of the touch keyboard.

So the touch keyboard can appear automatically in tablet mode when users sets the input focus to a text control by using touch input. However, this won't happen in desktop mode and in UWP, there is no API to open it programmatically by now.

To show touch keyboard in desktop mode, we need the user manually enables it by clicking touch keyboard button and users can see this button by checking "Show touch keyboard button" in taskbar.

You are welcome to submit a request for this feature through UserVoice and Windows Feedback Hub app.