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
内容,那么它就可以工作。
知道哪里出了问题吗?
可能是你按下退出键时你的控件没有焦点。
您应该将 UserControl
的 Focusable
属性 设置为 True
,然后在 UserControl
的加载事件中调用 Focus()
方法。
我在 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
内容,那么它就可以工作。
知道哪里出了问题吗?
可能是你按下退出键时你的控件没有焦点。
您应该将 UserControl
的 Focusable
属性 设置为 True
,然后在 UserControl
的加载事件中调用 Focus()
方法。