UWP订阅键盘输入事件/获取隐藏键盘输入

时间:2016-03-01 13:39:39

标签: input bluetooth keyboard win-universal-app

用我的智能手机连接蓝牙HID设备,它将数据作为键盘输入发送(它是RFID阅读器)。现在我写了一个UWP应用程序来使用这个输入。但问题是,如果没有像文本框这样的控件,我就无法获得键盘输入事件。

在我的应用程序中,我有一个带有splitView(菜单和内容)的rootFrame,在内容视图中,我有一个新框架,我加载页面。

我尝试了Pages的KeyDown-Event,但它无法正常工作,因为焦点并不总是在页面上(如果用户触摸导航面板,焦点切换到mainFrame) 。

那么,是否可以在键盘输入中添加一个eventHandler?还是有其他做法来解决这个问题?

先谢谢!

2 个答案:

答案 0 :(得分:0)

我也在寻找更好的方法,这不是一个完整的答案,因为我仍然需要在键盘关注之前点击页面内的某个位置,但这是一个开始:

<Grid x:Name="PageGrid"
      KeyDown="{x:Bind ViewModel.OnKeyboardNumberInput, Mode=OneWay}"

然后在我的ViewMode的PageLoaded事件中:

    public void PageLoaded(object sender, RoutedEventArgs args)
    {
        var grid = sender as Grid;

        // Find the OutputValueTextBlock and set keyboard focus to it.
        var tb = (TextBlock)grid.FindName("OutputValueTextBlock");
        tb.Focus(FocusState.Keyboard);

答案 1 :(得分:-1)

试试这个:

Windows.UI.Xaml.Window.Current.CoreWindow.CharacterReceived += KeyPress;

它对我有用。