Try this,
First check for a physical keyboard presence:
KeyboardCapabilities keyboardCapabilities = new Windows.Devices.Input.KeyboardCapabilities();
return keyboardCapabilities.KeyboardPresent != 0 ? true : false;
If you do not find a physical keyboard, use the in-built virtual keyboard of windows:
Process.Start(Environment.GetFolderPath(Environment.SpecialFolder.System) + Path.DirectorySeparatorChar + "osk.exe");
Got help from here:
link 1
link 2