【发布时间】:2013-06-09 07:50:46
【问题描述】:
我在WPF 中有一个按钮。
按下时,它会激活ViewModel 命令:myBtnClick。
<Button Command="{Binding myBtnClick}" />
效果很好。
我想在按下 Shift + 左键时运行另一个命令
有没有办法用Event Trigger 做到这一点?
(我要保持MVVM的原则)
【问题讨论】:
标签: wpf mvvm eventtrigger
我在WPF 中有一个按钮。
按下时,它会激活ViewModel 命令:myBtnClick。
<Button Command="{Binding myBtnClick}" />
效果很好。
我想在按下 Shift + 左键时运行另一个命令
有没有办法用Event Trigger 做到这一点?
(我要保持MVVM的原则)
【问题讨论】:
标签: wpf mvvm eventtrigger
是的,有办法。您只需为您的Button 定义InputBindings:
<Button Command="{Binding myBtnClick}">
<Button.InputBindings>
<MouseBinding Gesture="Shift+LeftClick" Command="{Binding MyCommand}"/>
</Button.InputBindings>
</Button>
【讨论】:
Shift,那么它不会进入Click 命令。如果我做Shift + Double Click,它就会去那里。您可以随时删除 Command="{Binding myBtnClick}" 并添加另一个 InputBinding 专门针对 LeftClick <MouseBinding Gesture="LeftClick" Command="{Binding myBtnClick}"/>
Keyboard 具有静态 Modifiers,它可以为您提供诸如 Alt、Control、Shift 或 Windows 等键的当前状态。只需使用类似Keyboard.Modifiers.HasFlag(ModifierKeys.Shift)