【问题标题】:Event trigger for Shift + Left ClickShift + 左键单击的事件触发器
【发布时间】:2013-06-09 07:50:46
【问题描述】:

我在WPF 中有一个按钮。

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

 <Button Command="{Binding myBtnClick}" />

效果很好。

我想在按下 Shift + 左键时运行另一个命令

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

(我要保持MVVM的原则)

【问题讨论】:

    标签: wpf mvvm eventtrigger


    【解决方案1】:

    是的,有办法。您只需为您的Button 定义InputBindings

    <Button Command="{Binding myBtnClick}">
       <Button.InputBindings>
           <MouseBinding Gesture="Shift+LeftClick" Command="{Binding MyCommand}"/>
       </Button.InputBindings>
    </Button>
    

    【讨论】:

    • 它工作正常。剩下的问题是他也来到了通常点击 Shift + LeftClick 的命令。有办法禁用它吗?
    • 我刚刚测试过,如果你在点击时按住Shift,那么它不会进入Click 命令。如果我做Shift + Double Click,它就会去那里。您可以随时删除 Command="{Binding myBtnClick}" 并添加另一个 InputBinding 专门针对 LeftClick &lt;MouseBinding Gesture="LeftClick" Command="{Binding myBtnClick}"/&gt;
    • 非常感谢。我有一个与主题无关的问题,Command 中有没有办法知道是否按 Shift? (没有 Command 参数 - 已在使用中)
    • 当然有。 Keyboard 具有静态 Modifiers,它可以为您提供诸如 AltControlShiftWindows 等键的当前状态。只需使用类似Keyboard.Modifiers.HasFlag(ModifierKeys.Shift)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多