C# 是否有WPF'的替代方案;s";“键绑定”;在UWP?

C# 是否有WPF'的替代方案;s";“键绑定”;在UWP?,c#,wpf,uwp,key-bindings,C#,Wpf,Uwp,Key Bindings,在我的WPF应用程序中,我使用下面写的内容来绑定F10键,以运行脚本中名为“btn\u font\u click”的方法。然而,很明显,UWP在XAML中不支持这样的直接键绑定,因为它是通用的,并且不是为Windows设计的 有没有办法在UWP应用程序中获得相同的效果 <Window.Resources> <RoutedUICommand x:Key="cmd1"></RoutedUICommand> </Window.Resources>

在我的WPF应用程序中,我使用下面写的内容来绑定F10键,以运行脚本中名为“btn\u font\u click”的方法。然而,很明显,UWP在XAML中不支持这样的直接键绑定,因为它是通用的,并且不是为Windows设计的

有没有办法在UWP应用程序中获得相同的效果

<Window.Resources>
     <RoutedUICommand x:Key="cmd1"></RoutedUICommand>
</Window.Resources>
<Window.CommandBindings>
     <CommandBinding Command="{StaticResource cmd1}" 
     Executed="btn_font_Click"> 
     </CommandBinding>
</Window.CommandBindings>
<Window.InputBindings>
     <KeyBinding  Key="F10" Command="{StaticResource cmd1}"></KeyBinding>
</Window.InputBindings>

我用它从RFID阅读器输入数据。当前,当扫描RFID卡时,它会按F10,输入数据,然后按enter键。 我的想法是F10将键盘焦点设置为一个文本框,然后在RFID输入数据时,脚本等待回车键,然后将文本框中的内容提取出来,并将其拆分为一个数组,以便在应用程序中使用

如果有更好或更直接的方法将RFID卡中的数据传输到我的阵列,我愿意寻找其他可能的解决方案


编辑:在研究了一段时间后,我发现“键盘加速器”最适合当前的功能,因为我希望RFID卡在应用程序未聚焦时仍能工作。我能得到一些关于如何设置键盘加速器的建议吗?将F10按键连接到运行我的方法上?

如果你想设置这种应用程序范围的键盘快捷机制,激活器肯定是一种方法

有一个可用的,此功能自秋季创建者更新后可用。每个
ui元素
都有一个,允许您定义与其交互的键盘加速器。如果按钮和菜单项调用指定的快捷方式,则会自动调用控件,但要使
文本框成为焦点,必须使用
调用的
事件自己指定此行为:

<TextBox>
    <TextBox.KeyboardAccelerators>                
            <KeyboardAccelerator Modifiers="None"                       
                Key="F10" Invoked="KeyboardAccelerator_OnInvoked" />
    </TextBox.KeyboardAccelerators>
</TextBox>

KeyboardAcceleratorInvokedEventArgs.Element
属性包含对
文本框的引用,我将其转换为
控件
,由于这是声明
Focus
方法的
TextBox
的父级,因此您可以在任何可聚焦控件上潜在地重用此方法。

如果您想设置这种应用程序范围的键盘快捷机制,Activator绝对是一种方法

有一个可用的,此功能自秋季创建者更新后可用。每个
ui元素
都有一个,允许您定义与其交互的键盘加速器。如果按钮和菜单项调用指定的快捷方式,则会自动调用控件,但要使
文本框成为焦点,必须使用
调用的
事件自己指定此行为:

<TextBox>
    <TextBox.KeyboardAccelerators>                
            <KeyboardAccelerator Modifiers="None"                       
                Key="F10" Invoked="KeyboardAccelerator_OnInvoked" />
    </TextBox.KeyboardAccelerators>
</TextBox>

KeyboardAcceleratorInvokedEventArgs.Element
属性包含对我们的
TextBox
的引用,我将其转换为
控件
,因为这是声明
Focus
方法的
TextBox
的父级,您可以在任何可聚焦控件上重用此方法。

我明白了,太棒了。我已经将此添加到我的应用程序中,它可以很好地使用此功能。谢谢你的帮助。如果解决了问题,请考虑接受答案作为解决方案,这样问题就解决了。快乐编码!我明白了,太棒了。我已经将此添加到我的应用程序中,它可以很好地使用此功能。谢谢你的帮助。如果解决了问题,请考虑接受答案作为解决方案,这样问题就解决了。快乐编码!