KeyBindings WPF 未在加载时触发

KeyBindings WPF not firing on load

我在 ContentControl 里面有一个 UserControl。我希望在按下 Escape 键时关闭用户控件。所以我使用了这样的 KeyBinding

 <UserControl.CommandBindings>
    <CommandBinding Command="{StaticResource CloseCommand}" Executed="Close" />
 </UserControl.CommandBindings>

 <UserControl.InputBindings>
    <KeyBinding Key="Escape" Command="{StaticResource CloseCommand}" />
 </UserControl.InputBindings>

当按下 Escape 键时,此代码应该触发 CloseCommand。但是第一次加载 UserControl 时它不会触发。如果我使用另一个 UserControl 导航和更改 ContentControl 内容,那么它就可以工作。

知道哪里出了问题吗?

可能是你按下退出键时你的控件没有焦点。 您应该将 UserControlFocusable 属性 设置为 True,然后在 UserControl 的加载事件中调用 Focus() 方法。