Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 我可以确定按下的是哪个键盘吗?_Wpf_Keyboard - Fatal编程技术网

Wpf 我可以确定按下的是哪个键盘吗?

Wpf 我可以确定按下的是哪个键盘吗?,wpf,keyboard,Wpf,Keyboard,我的应用程序的用户有一个带有特殊功能键的第二个键盘。不幸的是,这些键被映射到按钮,如F、G、F1等。我想处理PreviewKeyDown并防止这些键盘上的任何键对文本框等正常控件产生影响 在WPF中,有没有办法确定是哪个键盘引发了事件 使用System.Windows.Input,您可以通过捕获代码中触发的事件来实现这一点。下面的示例代码显示了如何在Textbox中执行此操作 private void SampleTextbox_PreviewKeyDown(object sender, Key

我的应用程序的用户有一个带有特殊功能键的第二个键盘。不幸的是,这些键被映射到按钮,如F、G、F1等。我想处理PreviewKeyDown并防止这些键盘上的任何键对文本框等正常控件产生影响


在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
            }
        }

不,不能直接在WPF中进行调试。

调试时,您是否查看了可用的属性?事件参数中是否没有任何内容?它没有任何东西可以让你区分这两者吗?嗯,这个问题很好,+1。等我有空的时候,我会再仔细研究一下。我发现:,可以提供一个解决方案。似乎也有一个类似的解决方案。在WPF EventKey链中仍然没有挂钩。谢谢,这种方法的问题是放弃了WPF键盘事件模型,并为这个键盘提供了一个并行实现。是的,我知道,但目前似乎找不到比这个更接近的方法。。