Shift +左键单击的事件触发器

Hod*_*lom 3 wpf eventtrigger mvvm

我有一个按钮WPF.

按下时,它会激活ViewModel命令:myBtnClick.

 <Button Command="{Binding myBtnClick}" />
Run Code Online (Sandbox Code Playgroud)

它工作正常.

Shift +左键单击时,我想运行另一个命令

有没有办法做到这一点Event Trigger

(我想保持原则MVVM)

dko*_*ozl 12

是的,有一种方法.你只需要InputBindings为你的定义Button:

<Button Command="{Binding myBtnClick}">
   <Button.InputBindings>
       <MouseBinding Gesture="Shift+LeftClick" Command="{Binding MyCommand}"/>
   </Button.InputBindings>
</Button>
Run Code Online (Sandbox Code Playgroud)

  • 当然有.`Keyboard`有静态[`Modifiers`](http://msdn.microsoft.com/en-us/library/system.windows.input.keyboard.modifiers.aspx),它可以为你提供像Alt这样的键的当前状态. ,`Control`,`Shift`或`Windows`.只需使用类似`Keyboard.Modifiers.HasFlag(ModifierKeys.Shift)`的东西 (3认同)
  • 我刚刚测试过,如果您在单击期间按住“Shift”,那么它不会进入“Click”命令。如果我执行“Shift + 双击”,它就会出现在那里。您始终可以删除`Command =“{Binding myBtnClick}”`并添加另一个专门用于`LeftClick`的`InputBinding``&lt;MouseBinding Gesture =“LeftClick”Command =“{Binding myBtnClick}”/&gt;` (2认同)