異なるマシンでは、OnKeyDown
上書きでは、e.Key
値は必ずしも一貫していません。たとえば、Boot Camp で Win7-64 を実行している私の Mac では、バックスラッシュ キーが期待どおりに報告されますがKey.OemQuote
、Key.OemBackslash
これは同じキーでさえないことを考えると意味がありません。同僚の Dell では、まったく別のものとして報告されています。
ただし、どちらの場合も、入力時に正しいバックスラッシュ文字がテキストボックスに表示されるため、OS はそのキーがどの文字に関連付けられているかを明らかに認識しています。
特定のシステムのキーコードが与えられた場合、そのキーが表す対応する文字を取得できるかどうかを判断しようとしています (修飾キーが押されていないと仮定します)。
注:入力された文字を処理するOnPreviewTextInput
andイベントについては既に認識していますが、それは私が求めているものではありません。OnTextInput
KeyCode をパラメーターとして取り、そのキーが押された場合に画面に表示される文字を返す関数について具体的に質問しています。
たとえば、私のマシンでは、関数はKey.OemQuote
バックスラッシュ文字を受け取って返します。渡すKey.Control
と戻りnull
ます (Control だけを押しても実際には何も表示されないため)。
注:この質問に似ているように見えるさまざまなキーコードの処理について別の質問をしましたが、これはそのようなコードを取り、文字を返す関数に関連する非常に具体的な別の質問です。これを重複としてマークしないでください。そうではない。