用我的智能手机连接蓝牙HID设备,它将数据作为键盘输入发送(它是RFID阅读器)。现在我写了一个UWP应用程序来使用这个输入。但问题是,如果没有像文本框这样的控件,我就无法获得键盘输入事件。
在我的应用程序中,我有一个带有splitView(菜单和内容)的rootFrame,在内容视图中,我有一个新框架,我加载页面。
我尝试了Pages的KeyDown-Event,但它无法正常工作,因为焦点并不总是在页面上(如果用户触摸导航面板,焦点切换到mainFrame) 。
那么,是否可以在键盘输入中添加一个eventHandler?还是有其他做法来解决这个问题?
先谢谢!
答案 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;
它对我有用。