TextBox - F12功能键不会触发事件

时间:2018-01-26 13:50:25

标签: c# xaml uwp raspberry-pi3 windows-iot-core-10

我正在开发在Raspberry Pi 3和Windows 10 IoT Core 10.0.16299.125上运行的应用程序。作为其中的一部分,我创建了类派生形式UserControl。它由两个TextBoxes组成。所述控件需要在焦点处理时自己处理键盘输入。我需要的是数字键,+, - ,*,/和功能键。除了F12之外,我得到了所有需要的键来使用OnKeyDown事件。 例如,Grid上将存在该类型的多个控件。

我已经尝试为整个类订阅KeyDown / Up并在其中输入文本框并覆盖OnKeyDown / Up但问题在所有情况下都是相同的,我无法捕获F12键。有趣的是,只要我的控件具有焦点,我就会捕获整个页面的关键事件,F12不会触发事件,否则它会起作用。

我也试过了

Window.Current.CoreWindow.CharacterReceived += CoreWindow_CharacterReceived;

private void CoreWindow_CharacterReceived(CoreWindow sender, CharacterReceivedEventArgs args)
{
 Debug.WriteLine("Key pressed: " + args.KeyCode);
 ...
}

但是根本没有得到功能键。 UWP中不存在ProcessCmdKey。还有很多其他针对WinForms的解决方案。 在我看来,TextBox以某种方式阻止F12键,但到目前为止我无法找到答案为什么或如何。

经过一些额外的搜索和测试后

Window.Current.CoreWindow.KeyUp += ...

不起作用,但

KeyboardDeliveryInterceptor

有点作品。当我的控件具有焦点时,我可以捕获F12键,但是这样键会从正常处理路径中退出并且TextBox输入被阻止。所以我正在寻找一种方法让钥匙重新上路。

0 个答案:

没有答案