zoukankan      html  css  js  c++  java
  • 【WPF/WAF】设置快捷键(Shortcut Key)

    基于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>
  • 相关阅读:
    css3记事
    ele
    vue记事1
    HBuilder
    继承与面向对象设计
    实现
    设计与声明
    资源管理
    构造/析构/赋值运算
    让自己习惯C++
  • 原文地址:https://www.cnblogs.com/guxin/p/csharp-wpf-mvvm-set-shortcut-key.html
Copyright © 2011-2022 走看看