整个窗口中的 WPF 快捷方式

标签 wpf keyboard-shortcuts

我正在开发 MVVM 应用程序,我想为我的应用程序创建全局快捷方式。有必要在模块之间导航应用程序。我有带有代码的主窗口:

<UserControl.InputBindings>
    <KeyBinding Command="{Binding ChangeModuleComand}"
                    Key="M"
                    Modifiers="Control"/>
</UserControl.InputBindings>

当我将焦点放在窗口上时,它会起作用,

但是当我将注意力集中在该 UserControl 中的 TextBox 上时出现问题(命令未触发)。

是否可以在整个应用程序中不进行大量修改的情况下捕获关键压力?

A.

最佳答案

听起来你的事件在它冒泡之前就已经被处理了。接下来我想知道您是否可以将输入绑定(bind)移动到窗口而不是用户控件。我的最终选择是删除输入绑定(bind)并创建全局 checkin 代码。

由于您已经在使用输入绑定(bind),因此我添加了以下代码选项:

    //In App.xaml.cs
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
        EventManager.RegisterClassHandler(typeof(UIElement), UIElement.KeyDownEvent, new RoutedEventHandler(GlobalClick));
    }

    private void GlobalClick(object sender, RoutedEventArgs e)
    {
        var args = (KeyEventArgs) e;
        if (args.KeyboardDevice.IsKeyDown(Key.M) &&
            args.KeyboardDevice.IsKeyDown(Key.LeftCtrl) || args.KeyboardDevice.IsKeyDown(Key.RightCtrl))
            MessageBox.Show("Works");
    }

关于整个窗口中的 WPF 快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17660523/

相关文章:

javascript - TinyMCE:如何添加更改字体大小的快捷方式

wpf - 将 GDI+ PixelFormat 转换为 WPF PixelFormat

wpf - 清除文本框不会将绑定(bind)设置为 null

.net - XBAP - 此应用程序类型已被禁用

python - 如何使用 QTest 发送菜单项的键盘快捷键?

visual-studio-code - 如何导航 VS Code Explorer 并仅通过键盘打开文件?

wpf - 如何在WPF中循环访问ItemsControl?

c# - ObservableCollection 条件计数

ide - 在 Aptana Studio 3.0 中查找注释代码的快捷方式

intellij-idea - IntelliJ IDEA 切换 2 个单词的快捷方式