当焦点位于 TextBox 类型的元素上时,WPF 会阻止 InputBindings 获取快捷方式

WPF blocking InputBindings for shortcut when the focus is on TextBox kind of element

我需要使用 Ctrl + PageUp/PageDown - previous/next 导航 TabControl 中的选项卡。一切正常,直到 Tab 内有一个 TextBox 控件并且焦点在它上面。那么快捷方式将不起作用。其他组合键可以正常工作,但 PageUp 和 PageDown 不行。 这是我的 Tab 控件:

 <TabControl.InputBindings>
  <KeyBinding Modifiers="Control"
              Key="PageDown"
              Command="{Binding Source={StaticResource ShortCutCommands}, Path=TabControlNextItemCommand}"
              CommandParameter="{Binding ElementName=TabControl}"/>
  <KeyBinding Modifiers="Control"
              Key="PageUp"
              Command="{Binding Source={StaticResource ShortCutCommands}, Path=TabControlPreviousItemCommand}"
              CommandParameter="{Binding ElementName=TabControl}"/>
</TabControl.InputBindings>

有人遇到过类似的问题吗?

我知道使用命令是理想的,但是如果 TextBoxKeyBinding 有机会工作之前吃掉那些关键输入,我知道的唯一解决方案是使用 PreviewKeyDown 事件而不是输入绑定。

private void TabControl_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Tab && Keyboard.Modifiers.HasFlag(ModifierKeys.Control))
    {
        //Invoke command here
    }
}