2010-07-28 92 views

回答

3

我已經創建了這樣的手勢觸發器。我想和大家分享一下。基本上,它是System.Windows.Interactivity觸發器,它可以解析表示爲字符串的手勢。用法與在ClientUI中一樣簡單:

<UserControl> 
    <i:Interaction.Triggers> 
     <behaviors:KeystrokeCommandTrigger Command="{Binding SaveChangesCommand}" Gesture="Ctrl+Shift+S" /> 
     <behaviors:KeystrokeCommandTrigger Command="{Binding RejectChangesCommand}" Gesture="Ctrl+Shift+R" /> 
     <behaviors:KeystrokeCommandTrigger Command="{Binding NewItemCommand}" Gesture="Ins" /> 
     <behaviors:KeystrokeCommandTrigger Command="{Binding DeleteSelectedItemCommand}" Gesture="Del" /> 
     <behaviors:KeystrokeCommandTrigger Command="{Binding UploadSomethingCommand}" Gesture="Ctrl+Shift+U" /> 
    </i:Interaction.Triggers> 
</UserControl> 

該代碼在pastie上。

+0

謝謝,它效果很好! – Jalal 2012-08-22 08:11:51

1

您可以編寫一個附加的行爲,該行爲監聽KeyUp事件,然後調用Command。併發症來自翻譯Gesture =「Ctrl + Shift + A」之類的東西。您需要編寫一個解析器來確定string代表的關鍵組合。

+0

那麼,現有的開源解決方案沒有? – 2010-07-29 06:47:52

+0

不是我已經找到。根據處理Gesture參數的方式,編寫簡單的行爲不應太複雜。 – Stephan 2010-07-30 16:43:55