私のアプリケーションのユーザーには、特別なファンクション キーを備えた 2 つ目のキーボードがあります。残念ながら、キーは F、G、F1 などのボタンにマッピングされています。PreviewKeyDown を処理し、これらのキーボードのキーが TextBox などの通常のコントロールに影響を与えないようにしたいと考えています。
WPFでは、どのキーボードがイベントを発生させたかを判断する方法はありますか?
いいえ、WPF で直接行うことはできません。
System.Windows.Input を使用すると、コード ビハインドで発生したイベントをキャプチャすることでこれを実現できます。以下のサンプル コードは、Textbox でこれを行う方法を示しています。
private void SampleTextbox_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Delete) // delete key is pressed
{
e.Handled = true; // Ignore key press
}
}