【问题标题】:Hide keyboard Windows Phone 8.1隐藏键盘 Windows Phone 8.1
【发布时间】:2015-06-30 21:34:14
【问题描述】:

当我尝试使用手写从画布中向 TextBox 添加文本时,光标转到 TextBox 并显示键盘,然后我尝试添加一些代码,例如使 TextBox isReadonly 或尝试隐藏键盘并且不不行。 我希望每次从 ListBox 中选择一个项目,该项目添加到 TextBox 而不显示键盘。在 RecognizedListBox_Selection 上的动作改变了一个 ListBox

private void RecognizedListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (RecognizedListBox.SelectedItem == null)
            return;

            //gte the selected item from listbox
            string inputTextWritePad = RecognizedListBox.SelectedItem.ToString();
            //add the item to RichEditBox
            MyTextNote.Text += inputTextWritePad + " ";
            //clear the canvas  return the listbox to vide
            ClearAllClick(sender, e);  
    }

如果我为 TextBox 添加 isReadonly,它将永久禁用编辑它,并且我无法使用键盘添加任何文本。我不知道我会把我的代码放在哪里,或者验证我什么时候需要键盘来使用它。 我看看我是否需要隐藏键盘,我必须有一个键盘按钮的事件或类似的东西

private void TextBox_KeyUp(object sender, KeyRoutedEventArgs e)
{
    if(e.Key==Windows.System.VirtualKey.Enter)
    {
        Windows.UI.ViewManagement.InputPane.GetForCurrentView().TryHide();
    }
}

但没有什么可弄清楚的!

更新 1: 我添加了这段代码

private void MyTextNote_GotFocus(object sender, RoutedEventArgs e)
    {
        InputPane.GetForCurrentView().TryHide();
    }

并帮助我不显示键盘,但我需要在单击文本框时显示它,我尝试轻按但没有任何帮助。

【问题讨论】:

  • 如果您可以禁用 TextBox,为什么不使用标签来代替?
  • 我不想禁用我的文本框,我使用手写识别添加一些单词,如果有错误的单词,我想尝试修改它,所以我需要文本框
  • 尝试将焦点从您的文本框上移开。
  • 这在 WP 8.1 应用程序中不起作用。仅 Windows.UI.ViewManagement.InputPane.GetForCurrentView().TryHide();
  • 我发现了这个有趣的属性link,它应该可以帮助你:<TextBox PreventKeyboardDisplayOnProgrammaticFocus="bool"/>

标签: c# keyboard windows-phone-8.1


【解决方案1】:

如果您的 TextBox 以编程方式接收焦点,这是一个避免显示键盘的属性:

<TextBox PreventKeyboardDisplayOnProgrammaticFocus="true"/>

将此属性设置为 true 以防止屏幕触摸键盘 显示何时以编程方式在文本框上设置焦点。默认, 每当焦点移动到 可编辑的文本框,最近的输入是通过触摸生成的。

Official Doc

【讨论】:

  • 它对我不起作用,我需要一直关闭键盘,只有当我需要编辑文本框时,键盘才会显示,请参阅我的新更新1
  • 我目前无法访问 WP8.1 SDK,所以我无法自己尝试,但是查看您的代码,我有以下备注:在您的第一个处理程序中,TextBox_KeyUp ,当您点击 键时键盘将隐藏,这应该可以工作,但在您的情况下没有用。在MyTextNote_GotFocus 中,即使这项工作有效,您也无法编辑文本,因为它总是会隐藏键盘。我可以想象的两个解决方案是将焦点设置为其他内容,例如您的页面(在设置文本后在 ListSelectionChanged 中添加 this.focus(); 或尝试确定 TextBox 如何接收其焦点。