2015-06-30 246 views
0

当我尝试从使用手写的画布在文本框中添加文本时,光标移至文本框并显示键盘,并尝试添加一些代码,如使文本框isReadonly或尝试隐藏键盘并不起作用。 我希望每次都从列表框中选择一个项目,将项目添加到文本框中而不显示键盘。一个ListBox隐藏键盘Windows Phone 8.1

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); 
    } 

如果我添加isReadonly的文本框上RecognizedListBox_SelectionChanged的动作,将永久禁止对其进行编辑,并使用键盘我不能添加任何文字。我不知道我会在哪里放置我的代码,或者确认何时需要键盘才能使用它。 我看看我是否需要隐藏键盘,我必须对键盘按键或什么事件这样

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(); 
    } 

,并帮我不能显示的键盘,但我需要表现出来,当我点击文本框,我尝试丝毫挖掘,但没有帮助。

+0

如果你是好与禁用您文本框,为什么不使用一个标签呢? – yoogeeks

+0

我不想禁用我的文本框,我使用手写识别来添加一些单词,如果有一些错误的单词,我想尝试修改它,所以我需要将文本框 – Amin

+0

设置为关闭TextBox。 – yoogeeks

回答

3

这里有一个属性,以避免如果你的文本框接收程序集中显示键盘:

<TextBox PreventKeyboardDisplayOnProgrammaticFocus="true"/> 

将此属性设置为true,以防止 显示屏幕上的触摸键盘时,焦点编程上的文本框设置。默认情况下,只要焦点移至可编辑文本框 且通过触摸生成最近的输入,就会显示屏幕触摸键盘。

Official Doc

+1

它不适用于我,我只需要关闭键盘,只有当我需要编辑文本框时,键盘显示,请参阅我的新更新1 – Amin

+0

我目前无法访问WP8.1 SDK,因此我无法自行尝试,但查看您的代码,我有以下注释: 在您的第一个处理程序“TextBox_KeyUp”中,当您轻击时,键盘将会隐藏关键,这应该工作,但在你的情况下,是没有用的。 而在MyTextNote_GotFocus中,即使这样做,你也不能编辑文本,因为它总是会隐藏键盘。 我能想到的两种解决方案是将焦点设置为其他内容,例如您的页面(在设置文本之后在ListSelectionChanged中添加'this.focus();'或尝试确定TextBox如何接收其焦点。 – yoogeeks