忽略KeyBinding中的重复(按住键 - 执行命令一次)

时间:2012-10-10 10:05:39

标签: c# wpf xaml mvvm keyboard-shortcuts

我使用KeyBindings在我的xaml中声明了键盘快捷键。 我想忽略由于少数几个键持有的重复。

我找到了只使用事件并检查“IsRepetition”的解决方案,这些解决方案并不适用于我对键绑定的声明。

当然我可以在Command定义本身中进行测量并测量最后两次执行之间的时间差,但这使我无法区分多次按下和一次按键。

只有在第一次按下时执行的最佳方式是什么,如果按键被保持,则忽略其余部分?

2 个答案:

答案 0 :(得分:0)

我想说如果你创建一个非常简单的类型的状态机,它会对KeyDinding事件上的KeyBinding采取操作,并且会忽略所有其他输入,直到触发KeyUp事件为KeyBinding提供“一次性”行为

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keyup.aspx

答案 1 :(得分:0)

使用keyUp方法代替KeyDown。