在Windows 10 IoT Core上的Windows Universal App中手动触发屏幕键盘?

时间:2017-08-24 14:44:34

标签: c# xaml win-universal-app iot windows-10-iot-core

出于某种原因,覆盆子pi 2型号b上的Windows 10 IoT Core中的屏幕键盘并不总是出现在前面。 (实际上99%不起作用)。

是否可以在代码隐藏中手动拨打电话(例如当发生OnFocus事件时)以显示osk?

1 个答案:

答案 0 :(得分:0)

osk实际上是一个单独的程序,您可以使用External Process Launcher API调用它 https://developer.microsoft.com/en-us/windows/iot/samples/externalprocesslauncher

根据我的理解,它仅适用于Windows SDK:版本15063及更高版本。

我没有安装SDK,因此这段代码可能有误,但看起来有点像这样:

var result = await ProcessLauncher.RunToCompletionAsync("C:\\Windows\\System32\\osk.exe", string.Empty);

编辑:
我认为这可能会阻止UI线程,这是不可取的。也许如果你在后台运行任务...也许通过CoreDispatcher。
https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Core.CoreDispatcher#Windows_UI_Core_CoreDispatcher_RunAsync_Windows_UI_Core_CoreDispatcherPriority_Windows_UI_Core_DispatchedHandler_

var ignored = dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () =>
    {
        await ProcessLauncher.RunToCompletionAsync("C:\\Windows\\System32\\osk.exe", string.Empty);
    });