【WPF/WAF】设置快捷键(Shortcut Key)
2024-09-29 12:55:24
基于WAF框架:WPF Application Framework (WAF)
View层XAML中设置热键。
<Window.InputBindings>
<!--<KeyBinding Command="{Binding SaveCommand}" Key="S" Modifiers="Control"/>-->
<KeyBinding Command="{Binding AboutCommand}" Key="F1"/>
</Window.InputBindings>
ViewModel中定义该AboutCommand命令。
private ICommand aboutCommand;
public ICommand AboutCommand
{
get { return aboutCommand; }
set { SetProperty(ref aboutCommand, value); }
}
控制层写AboutCommand命令的实现。
namespace WafApplication1.Applications.Controllers
{
[Export]
internal class ApplicationController
{
private readonly ShellViewModel shellViewModel;
private readonly DelegateCommand aboutCommand;
[ImportingConstructor]
public ApplicationController(ShellViewModel shellViewModel)
{
this.shellViewModel = shellViewModel;
this.aboutCommand = new DelegateCommand(AboutCommand);
}
private void AboutCommand()
{
MessageBox.Show("F1 Command!");
}
public void Initialize()
{
shellViewModel.AboutCommand = this.aboutCommand;
}
public void Run()
{
shellViewModel.Show();
}
public void Shutdown()
{
}
}
}
运行该项目,按F1即可看到弹出弹窗。
新的问题
给该Window窗体注册的快捷键,必须要在该窗体获得焦点时快捷键才有效。如果该窗体内有别的控件(如ListBox)获取了焦点,再点击该快捷键将不起效果。这时候,可考虑同样给该ListBox控件添加相同的快捷键命令。
<!-- 快捷键 -->
<ListBox.InputBindings>
<KeyBinding Command="{Binding ShortcutScaleCommand}" Key="F1"/>
</ListBox.InputBindings>
最新文章
- vue+node开发手机端h5页面开发遇到的坑
- SQLServer根据日期查询星期
- Centos 6.5 下php5.6.2 的编译安装
- .NET/android/java/iOS AES通用加密解密
- spring常见异常
- 【C语言】16-预处理指令2-条件编译
- ACM常用算法及练习(1)
- UIKit框架之UIlabel
- QT5-控件-QDateEdit 和 日期类QDate
- java基础之基础语法详录(一)
- 微信小程序xml解析
- uuid.go
- windows设置照片查看器为默认的照片查看软件
- Python并发复习4- concurrent.futures模块(线程池和进程池)
- sql中join与left-join图解区别
- Scrum Meeting 7
- 项目梳理5——修改已生成.nuspec文件
- 如何让chrome浏览器自动翻译
- ZOJ 4010 Neighboring Characters(ZOJ Monthly, March 2018 Problem G,字符串匹配)
- 总结day7 ---- 函数的内容 ,初识,返回值,进阶(一)