我目前使用onKeyDown事件和if/else语句来创建键盘快捷键:
if ((Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift && e.Key == Key.Tab) {
} else if (e.Key == Key.Tab) {
} ...
Run Code Online (Sandbox Code Playgroud)
但是,如果我有更多的键盘快捷键,这会变得混乱.
有更好的实施吗?
Chr*_*isF 17
你应该看看实现<CommandBindings>和<InputBindings>:
<Window.CommandBindings>
<CommandBinding Command="Settings" CanExecute="SettingsCanExecute" Executed="SettingsExecuted" />
</Window.CommandBindings>
<Window.InputBindings>
<KeyBinding Command="Settings" Key="S" Modifiers="Alt" />
</Window.InputBindings>
Run Code Online (Sandbox Code Playgroud)
<Button>然后你变成:
<Button Height="50" Width="50" Margin="50,5,0,0" Command="Settings" />
Run Code Online (Sandbox Code Playgroud)
该SettingsCanExecute方法确定何时启用按钮并且在SettingsExecuted按下按钮或敲击组合键时调用该方法.
然后,您不需要KeyDown处理程序.
有关Switch On The Code 的完整教程.
有关CommandBindings和InputBindings的更多信息可以在MSDN上找到.
| 归档时间: |
|
| 查看次数: |
14015 次 |
| 最近记录: |