UWP:需要在文本框单击时禁用屏幕键盘

问题描述 投票:0回答:1

UWP:需要在单击文本框时禁用屏幕键盘

因为我需要调用第三方屏幕键盘。

尝试了下面的代码......但我无法禁用屏幕键盘。

PreventKeyboardDisplayOnProgrammaticFocus="True" 

两者都调用了 Microsoft 屏幕键盘和第三方键盘。

它不起作用,但我尝试过

"ishittestvisible=false"
它起作用,但所有鼠标事件都被阻止。

任何解决方案都可以..1。禁用屏幕键盘或 2. 完成后

ishittestvisible=false
鼠标事件应该可以工作。

uwp uwp-xaml xamarin.uwp windows-community-toolkit uwp-navigation
1个回答
0
投票

下面的代码适用于我的 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()
来消除这种难看的行为。

© www.soinside.com 2019 - 2024. All rights reserved.