2016-03-01 118 views
0

與我的智能手機我連接藍牙HID設備發送數據作爲鍵盤輸入(這是一個RFID閱讀器)。現在我編寫了一個UWP應用程序來使用此輸入。但問題是,如果不專注於像文本框這樣的控件,我無法獲得鍵盤輸入事件。UWP訂閱鍵盤輸入事件/獲取隱藏鍵盤輸入

在我的應用程序中,我有一個帶有splitView(菜單和內容)的rootFrame,並且在Content-View中我有一個新框架,用於加載頁面。

我嘗試了頁面的KeyDown事件,但它不能正常工作,因爲焦點並不總是在頁面上(如果用戶觸摸導航面板,焦點切換到mainFrame )。

那麼,是否可以添加一個eventHandler到鍵盤輸入?還是有其他的做法來解決這個問題?

感謝先進!

回答

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); 
+0

不錯的想法,但它舔在用戶使用導航點。所以焦點從pageGrid中丟失,KeyDown事件不再被觸發。我仍然嘗試你的榜樣。 – Surras

-1

試試這個:

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

它爲我工作。