2009-11-03 45 views
4

我正在WPF中使用MVVM模式(對於兩者都有點新鮮)。MouseBinding上的WPF鍵盤修飾符

我想設立對應於Control + Click事件CheckBoxInputBinding,但沒有看到MouseBinding元件上的Modifiers屬性。這是想什麼我實現(虛構的代碼,obviously-修飾符不存在):

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

如何做到這一點的任何想法,而無需使用事件?

謝謝!

回答

1

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

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

我認爲一個行爲可以做到這一點。你可以看看this link

+0

我不認爲你是關閉基地;我可以使用一種行爲,但不知道我可以在ICommand的Execute()上下文中檢查Keyboard.Modifiers,這是我最終做的。 – egoodberry 2009-11-03 20:56:52

13

與鍵聯結也使用它!

1

一個老問題,但看起來像MouseBinding現在提供了一個手勢只是屬性爲這個..

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