UWP:需要在单击文本框时禁用屏幕键盘
因为我需要调用第三方屏幕键盘。
尝试了下面的代码......但我无法禁用屏幕键盘。
PreventKeyboardDisplayOnProgrammaticFocus="True"
两者都调用了 Microsoft 屏幕键盘和第三方键盘。
它不起作用,但我尝试过
"ishittestvisible=false"
它起作用,但所有鼠标事件都被阻止。
任何解决方案都可以..1。禁用屏幕键盘或 2. 完成后
ishittestvisible=false
鼠标事件应该可以工作。
下面的代码适用于我的 WinUI 3(Windows App SDK)应用程序。它也应该适用于 UWP。它完全防止键盘显示,不会闪烁/闪烁。
public sealed partial class CustomTextBox
{
private void CustomTextBox_OnGotFocus(object sender, RoutedEventArgs e)
{
CoreInputView.GetForCurrentView().PrimaryViewShowing += BlockOnScreenKeyboard;
}
private void CustomTextBox_OnLostFocus(object sender, RoutedEventArgs e)
{
CoreInputView.GetForCurrentView().PrimaryViewShowing -= BlockOnScreenKeyboard;
}
private static void BlockOnScreenKeyboard(CoreInputView sender, CoreInputViewShowingEventArgs args)
{
args.TryCancel();
sender.TryHide();
}
...
}
args.TryCancel()
单独完成这项工作,但是当应用程序失去焦点时,键盘就会出现,因此需要 sender.TryHide()
来消除这种难看的行为。