WPF鼠标绑定中的键盘修饰符

6
我正在使用WPF的MVVM模式进行开发(对两者都有点陌生)。
我想在CheckBox上设置一个InputBinding,对应于Control + Click事件,但是在MouseBinding元素上没有看到Modifiers属性。这就是我想要实现的效果(虚构的代码,显然-Modifiers不存在):
<CheckBox>
     <CheckBox.InputBindings>
           <MouseBinding MouseAction="LeftClick" 
                         Command="{Binding CheckboxControlClickCommand}"
                         Modifiers="Control" />
     </CheckBox.InputBindings>
</CheckBox>

有没有不使用事件实现这个的想法?
谢谢!
4个回答

13

还可以使用键盘绑定!


7
一道老问题,不过看起来现在的MouseBinding已经提供了Gesture属性,专门用于此目的。
<CheckBox>
     <CheckBox.InputBindings>
           <MouseBinding Gesture="CTRL+LeftClick" 
                         Command="{Binding CheckboxControlClickCommand}"/>
     </CheckBox.InputBindings>
</CheckBox>

1

最终我在ICommand的Execute()上下文中使用了Keyboard.Modifiers,看起来效果很好。

if (Keyboard.Modifiers != ModifierKeys.Control) return;
    ...

0

我认为一个行为会起到作用。你可以看一下这个链接


我认为你说得没错;我本来可以使用一个行为,但不知道在ICommand的Execute()上下文中可以检查Keyboard.Modifiers,这就是我最终做的事情。 - egoodberry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接