2010-12-01 15 views
5

私はTextBoxのKeyDownイベントにイベントハンドラを接続しました。イベントハンドラには、KeyおよびPlatformKeyCodeというプロパティを持つタイプKeyEventArgsの引数があります。問題は、とです。キーをWindowsの電話機のソフトキーボードで押すと、KeyおよびPlatformKeyCodeの値はそれぞれD149になります。どのキーが押されたかはわからない。また、Keyboard.Modifiers静的プロパティは、 "なし"を返します。Windows Phone 7で押したキーの値を調べる方法数値キーボード?

どのようにして押されたキーを特定できますか?

+0

これは簡単だと思いましたが、私はデバイスでこれをテストしましたが、同じ結果が得られます。 ';'と ':'のキーはどちらも、同じPlatformKeyCode 186と 'Key == Key.Unknown'を持っています。奇妙な。 – driis

+0

@driis私の疑惑をテストして確認してくれてありがとう。 – rams

答えて

2

これは既知の問題です。

KeyDown/OnKeyDown and KeyUp/OnKeyUp issues

あなたはいつも代わりに、入力値を読み込み、1 /に作用することができます!別々に

+0

リンクに感謝します。うまくいけば問題はまもなく修正されます – rams

+0

合意された、接続および/または公式の提案フォーラムにそれを掲示すること自由に感じなさい。 –

1

これはバグのようです。

これは、エミュレータと実デバイスの両方に存在します。

エミュレータでpcキーボードを使用している場合、キーダウン時に修飾キーが検出されるため、これは機能しません。

興味深いことに、物理キーボードを備えたデバイスを使用する場合、機能/シフトボタンが有効になっていると、他のボタンが押されたときに2回のキーダウンイベントがトリガされます。 1つは正しいキーコードと1つは修飾キーですが、Keboard.Modifierは常に「なし」です。

TextChangedイベントの前後にあるテキストボックスの値を読み取る必要があるようです。

+0

実験と提案に感謝します。制限を克服するためにTextChangedイベントで作業しています – rams

関連する問題