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
我想在我的 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