C# 主/端不工作的WPF键绑定手势
我有一个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"/> 它们都不起作用。但是我试过
<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命令,我也有同样的问题。