【问题标题】:WPF Keyboard Modifier on MouseBindingMouseBinding 上的 WPF 键盘修饰符
【发布时间】:2009-11-03 14:36:13
【问题描述】:

我正在使用 WPF 中的 MVVM 模式(对两者都有点新意)。

我想在与Control + Click 事件对应的CheckBox 上设置InputBinding,但在MouseBinding 元素上看不到Modifiers 属性。这就是我想要实现的(虚构的代码,显然 - 修饰符不存在):

<CheckBox>
     <CheckBox.InputBindings>
           <MouseBinding MouseAction="LeftClick" 
                         Command="{Binding CheckboxControlClickCommand}"
                         Modifiers="Control" />
     </CheckBox.InputBindings>
</CheckBox>

关于如何在不使用事件的情况下完成此任务的任何想法?

谢谢!

【问题讨论】:

    标签: wpf checkbox mouseevent inputbinding


    【解决方案1】:

    也可以与键绑定一起使用!

    【讨论】:

      【解决方案2】:

      一个老问题,但看起来 MouseBinding 现在为此提供了一个 Gesture 属性..

      <CheckBox>
           <CheckBox.InputBindings>
                 <MouseBinding Gesture="CTRL+LeftClick" 
                               Command="{Binding CheckboxControlClickCommand}"/>
           </CheckBox.InputBindings>
      </CheckBox>
      

      【讨论】:

        【解决方案3】:

        我最终在 ICommand 的 Execute() 上下文中使用了 Keyboard.Modifiers,这似乎工作得很好。

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

        【讨论】:

          【解决方案4】:

          我认为一种行为可以解决问题。你可以看看this link

          【讨论】:

          • 我不认为你是场外;我本可以使用一种行为,但不知道我可以在 ICommand 的 Execute() 上下文中检查 Keyboard.Modifiers,这就是我最终要做的。
          猜你喜欢
          • 1970-01-01
          • 2010-12-13
          • 1970-01-01
          • 2015-11-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-22
          • 2010-09-13
          相关资源
          最近更新 更多