2012-03-06 103 views
1

如何捕獲「@」和「#」鍵按下 - Silverlight的文本框KeyUp事件

我寫了下面的代碼捕獲「@」和「#」按下。在Emulator和Samsung Focus上工作得非常好。但是,當部署到諾基亞Lumia 800並按下「@」時,它不會導致Key.D2和以下代碼無法正常工作。

 if (e.Key == System.Windows.Input.Key.D2) 
     { 
      myAutocompleteBox.Text = "@"; 
      updateAutocompleteBox = true; 
     } 
     else if (e.Key == System.Windows.Input.Key.D3) 
     { 
      myAutocompleteBox.Text = "#"; 
      updateAutocompleteBox = true; 
     } 
     else if (e.Key == System.Windows.Input.Key.Back) 
     { 
      if (myAutocompleteBox.Text != String.Empty && updateAutocompleteBox == true) 
      { 
       string autoCompleteText = myAutocompleteBox.Text; 
       myAutocompleteBox.Text = autoCompleteText.Substring(0, autoCompleteText.Length - 1); 
      } 
     } 

請指導我如何捕獲在我的文本框上按下的「@」和「#」鍵。提前致謝。

+0

你能告訴我們任何代碼的一部分? – MarcinJuraszek 2012-03-06 13:01:14

回答

1

看看this

它有Windows Phone 7的所有鍵枚舉,看看,但不能發現@#

什麼價值返回e.Key

+0

我檢查過,但沒有幫助我:(正如在剪切中提到它返回我D2和D3。相同的鍵返回數值2和3,還有一些其他字符,如「'」。 – 2012-04-05 14:49:59

+0

更改邏輯,現在在keydown事件檢查已經鍵入了哪個新字符並基於那個執行操作 – 2013-01-11 06:01:46

3

我認爲D2或D3的值取決於使用中的鍵盤佈局。在EN-US佈局中SHIFT + 2在DE-DE SHIFT中是@ + 2是雙引號,D0 - D9根據所用佈局而變化。在您的代碼中,當將按鍵轉換爲字符串值時,您可能必須考慮這一點。

相關問題