有谁知道是否可以用快捷键触发棱镜命令?我的意思是我希望能够来定义中声明的方式键盘快捷键的命令绑定,就像ClientUI作用:用键盘快捷键触发Silverlight Prism命令
是否有用于该目的的任何开源库?或者也许代码示例?
我发现this question但我不认为它回答我的。
有谁知道是否可以用快捷键触发棱镜命令?我的意思是我希望能够来定义中声明的方式键盘快捷键的命令绑定,就像ClientUI作用:用键盘快捷键触发Silverlight Prism命令
是否有用于该目的的任何开源库?或者也许代码示例?
我发现this question但我不认为它回答我的。
我已经创建了这样的手势触发器。我想和大家分享一下。基本上,它是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上。
您可以编写一个附加的行为,该行为监听KeyUp事件,然后调用Command。并发症来自翻译Gesture =“Ctrl + Shift + A”之类的东西。您需要编写一个解析器来确定string
代表的关键组合。
那么,现有的开源解决方案没有? – 2010-07-29 06:47:52
不是我已经找到。根据处理Gesture参数的方式,编写简单的行为不应太复杂。 – Stephan 2010-07-30 16:43:55
谢谢,它效果很好! – Jalal 2012-08-22 08:11:51