【问题标题】:KeyBinding not working when switching Windows切换 Windows 时 KeyBinding 不起作用
【发布时间】:2012-09-19 15:33:13
【问题描述】:

我的 MainWindow 有一些 KeyBindings:

<Window.InputBindings>
   <KeyBinding Command="{Binding NewFileCommand}" Key="{Binding NewFileCommand.Key}" Modifiers="{Binding NewFileCommand.Modifiers}"  />
</Window.InputBindings>

只要我在某处单击窗口内容,它们就可以工作。但是,如果我使用 Alt+Tab 在应用程序之间切换(比如说 MS Word 和我的应用程序),那么在我再次单击视图中的某个位置之前,快捷方式将不再起作用。通过鼠标在边框上选择应用程序窗口时也是如此。

我怎样才能让它们工作?

【问题讨论】:

  • 这在我的复制中对我来说很好 - 你使用的是什么操作系统?你的钥匙是什么,你的修饰符是什么?另外,你绑定的命令是什么类型的?

标签: c# .net binding input key-bindings


【解决方案1】:

在我的 repro 中,我使用了来自 MVVM LightRelayCommand,效果很好。我猜你正在使用别的东西。尝试在您的窗口中添加此代码:

private void Window_Activated(object sender, EventArgs e)
{
    System.Windows.Input.CommandManager.InvalidateRequerySuggested();
}

这告诉命令框架发生了一些变化,它应该重新评估每个命令的 CanExecute 状态。

【讨论】:

  • 谢谢。我在 Activated-Event 上注册并调用 Keyboard.Focus() 到 IInputElement。然后绑定按预期工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-22
  • 2017-09-03
  • 2013-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多