2015-06-30 138 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