WPF 检测键序列

WPF detect key sequence

我想在我的 WPF 应用程序中隐藏 groupox,并在应用程序处于活动状态(未最小化)时通过按键代码在需要时手动启用它

这个例子有时只需要一个按键就可以工作,但我需要一个序列

protected override void OnPreviewKeyDown(KeyEventArgs e)
    {
        base.OnPreviewKeyDown(e);
        if (e.Key == Key.B)
        {
            bdgb.Visibility = Visibility.Visible;
        }
    }

例如,您可以覆盖 window 的 OnPreviewKeyDown 方法,例如:

protected override void OnPreviewKeyDown(KeyEventArgs e)
{
    base.OnPreviewKeyDown(e);
    if (e.Key == Key.B)
    {
        //...
    }
}

你把 handler 放在什么地方了?只有当前获得焦点的元素才会收到通知,如果未处理,它会在树上向上移动。

你需要放在最顶层的UIElement中,也就是说你的window.

或者,您可以采用更多 MVVMy WPF 样式,通过创建绑定到该键的命令并在您的 VM GroupBoxVisible 上设置 属性,将其设置为 "True" 并绑定到 GroupBox.Visibillity.

更多详情here