我想在我的应用程序中处理热键。编写一个键绑定需要一个命令,这很好,但我不清楚实现该命令所需的最小工作量是多少。我似乎发现的所有示例都是过度设计,不清楚或假设我使用的MVVM模式我不是。
那么使键绑定工作的基础是什么?
谢谢!
答案 0 :(得分:3)
实现命令所需的最小工作量只是实现ICommand的类。 RoutedCommand是一个简单的实现,提供基本功能。
设置完该命令后,KeyBinding
非常简单。您只需为该密钥提供Key
和可选Modifiers
即可。 .NET中包含了许多常用命令。例如,您可以使用此标记将“复制”命令绑定到Ctrl + C:
<Window.InputBindings>
<KeyBinding Command="ApplicationCommands.Copy" Key="C" Modifiers="Ctrl"/>
</Window.InputBindings>
您可以查看ApplicationCommands,ComponentCommands和NavigationCommands以了解其他一些内置命令。
答案 1 :(得分:1)
制作一个我知道的Keybinding的最简单方法是做这样的事情
在XAML中
<Window.CommandBindings>
<CommandBinding Command="MyCommand"
CanExecute="MyCommandCanExecute"
Executed="MyCommandExecuted" />
</Window.CommandBindings>
<Window.InputBindings>
<KeyBinding Command="MyCommand" Key="M" Modifiers="Ctrl"/>
</Window.InputBindings>
中的代码
private void MyCommandCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
e.Handled = true;
}
private void MyCommandExecuted(object sender, ExecutedRoutedEventArgs e)
{
MessageBox.Show("Executed!");
e.Handled = true;
}
在我看来这很可读,但如果您有任何问题请发表评论!