我有一个应用程序可以接收来自条形码扫描仪的击键(对于 Windows,它看起来就像一个 USB 键盘)。
我的要求是用户能够在应用程序中的任何位置(任何窗口、任何选项卡)使用条形码扫描仪并让它做出相应的反应。通过监视我的PreviewTextInput
事件App.xaml.cs
并触发我自己的自定义BarcodeArrived
事件,我已经有了一个这样的版本。这样做的问题是,如果用户将焦点放在不接受Text Input的控件上,则 PreviewTextInput 永远不会触发。
PreviewKeyDown
总是会触发,但它呈现的数据很难看,而且我似乎无法找到将 KeyDown 事件转换为规范化字符串的方法。我在“将 PreviewKeyDown 中的接收键转换为字符串”中发现了一篇 Stack Overflow 文章似乎很有希望,但似乎我不能在我的 App.xaml.cs 中连接它(无依赖对象)。
任何想法或建议都会很棒。或者,作为替代方案,至少有一种方法可以检测输入来自哪个键盘,此时使用PreviewKeyDown
可能是一个可行的选择,因为我可以假设一个“愚蠢的”输入流。