C# 主/端不工作的WPF键绑定手势

C# 主/端不工作的WPF键绑定手势,c#,wpf,keyboard-shortcuts,C#,Wpf,Keyboard Shortcuts,我有一个WPF应用程序,我正在尝试将自定义键手势与命令关联。我试过这些: <KeyBinding Gesture="HOME" Command="customCommand"/> <KeyBinding Gesture="Ctrl + HOME" Command="customCommand"/> <KeyBinding Gesture="ctrl + Alt + HOME" Command="customCommand"/> 它们都不起作用。但是我试过

我有一个WPF应用程序,我正在尝试将自定义键手势与命令关联。我试过这些:

<KeyBinding Gesture="HOME" Command="customCommand"/>
<KeyBinding Gesture="Ctrl + HOME" Command="customCommand"/>
<KeyBinding Gesture="ctrl + Alt + HOME" Command="customCommand"/>

它们都不起作用。但是我试过了

<KeyBinding Gesture="Ctrl + H" Command="customCommand"/>

它像预期的那样工作

我想知道
Ctrl+H
Ctrl+Home
之间有什么区别?WPF内部是否有任何东西阻止HOME/End键触发命令

更新: 我想我找到了它不起作用的原因。基本上,我们在最顶层的框架级别上定义了一个键绑定。结构如下: 框架 选项卡控件 用户控制

在用户控件内部,用户按下HOME按钮试图触发顶级命令。但是选项卡控件似乎截获并处理了该命令。在这种情况下,“主页”按钮实际上是在关注第一个选项卡项。
有没有办法绕过tab控件,以便顶层框架可以直接处理它?

OnKeyDown
方法中,
TabControl
处理Home键,然后将焦点移动到第一个选项卡项

避免此行为的唯一方法是创建自己的控件,该控件派生自
TabControl
,并重写
OnKeyDown
方法。例如:

public void MyTabControl : TabControl
{
    protected override void OnKeyDown(KeyEventArgs e)
    {
        if(e.Key != Key.Home)
        {
            base.OnKeyDown(e);
        }
    }
}

这将停止默认的
TabControl
主密钥处理。

发布相关XAML。您将这些
按键手势应用于哪个UI元素?如果您找到了答案,请发布答案或删除您的问题。不要让它永远打开。我遇到了完全相同的问题,使用Home不起作用,但Ctl+H起了作用。。。我的主窗口的Window.InputBindings中定义了我的Home命令,我也有同样的问题。