有誰知道是否可以用快捷鍵觸發棱鏡命令?我的意思是我希望能夠來定義中聲明的方式鍵盤快捷鍵的命令綁定,就像ClientUI作用:用鍵盤快捷鍵觸發Silverlight Prism命令
是否有用於該目的的任何開源庫?或者也許代碼示例?
我發現this question但我不認爲它回答我的。
有誰知道是否可以用快捷鍵觸發棱鏡命令?我的意思是我希望能夠來定義中聲明的方式鍵盤快捷鍵的命令綁定,就像ClientUI作用:用鍵盤快捷鍵觸發Silverlight Prism命令
是否有用於該目的的任何開源庫?或者也許代碼示例?
我發現this question但我不認爲它回答我的。
我已經創建了這樣的手勢觸發器。我想和大家分享一下。基本上,它是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上。
您可以編寫一個附加的行爲,該行爲監聽KeyUp事件,然後調用Command。併發症來自翻譯Gesture =「Ctrl + Shift + A」之類的東西。您需要編寫一個解析器來確定string
代表的關鍵組合。
那麼,現有的開源解決方案沒有? – 2010-07-29 06:47:52
不是我已經找到。根據處理Gesture參數的方式,編寫簡單的行爲不應太複雜。 – Stephan 2010-07-30 16:43:55
謝謝,它效果很好! – Jalal 2012-08-22 08:11:51