有人知道是否可以用快捷方式触发prism命令吗?我的意思是我希望能够以声明方式定义命令与键盘快捷键的绑定,如ClientUI所做的那样:
是否有用于此目的的开源库?或者可能是代码样本?
我找到了this question,但我不认为它会回答我的。
答案 0 :(得分:3)
我已经创建了这样的手势触发器。我想和你们分享一下。基本上,它是System.Windows.Interactivity
触发器,可以解析表示为字符串的手势。用法就像在ClientUI中一样简单:
<UserControl>
<i:Interaction.Triggers>
<behaviors:KeystrokeCommandTrigger Command="{Binding SaveChangesCommand}" Gesture="Ctrl+Shift+S" />
<behaviors:KeystrokeCommandTrigger Command="{Binding RejectChangesCommand}" Gesture="Ctrl+Shift+R" />
<behaviors:KeystrokeCommandTrigger Command="{Binding NewItemCommand}" Gesture="Ins" />
<behaviors:KeystrokeCommandTrigger Command="{Binding DeleteSelectedItemCommand}" Gesture="Del" />
<behaviors:KeystrokeCommandTrigger Command="{Binding UploadSomethingCommand}" Gesture="Ctrl+Shift+U" />
</i:Interaction.Triggers>
</UserControl>
代码位于pastie。
答案 1 :(得分:1)
您可以编写一个附加行为,该行为具有侦听KeyUp事件,然后调用Command。复杂性来自于翻译Gesture =“Ctrl + Shift + A”之类的东西。您需要编写一个解析器来确切地确定string
表示的组合键。