按键事件不会被方向键激活

Key Event doesn't actives by arrow keys

首先我正在使用 WPF,我是新手。

我在 xaml 中的内容控件中添加了一个 KeyDownEvent:

 <ContentControl Grid.Row="1" Name="dockingContentControl" KeyDown="dockingContentControl_KeyDown"/>

我知道,可能有更好的方法来添加 KeyDown 事件。 (也有帮助)

但该活动正在运作。所以我使用了一个简单的 Console.WriteLine 命令,如下所示:

private void dockingContentControl_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
    Console.WriteLine(e.Key);
}

它显​​示了我按下的按钮。

但不知何故它没有用箭头键触发。

我不知道为什么所有其他(我想所有,但没有测试所有)按钮都可以工作,但箭头键不能。

我是不是漏掉了什么,还是必须添加一些额外的代码。

命令:fn 按钮外,所有其他按钮均被识别。 背景图表在动,难道是图表有焦点没有"forward"输入?

这取决于您在 ContentControl 中放置了哪些控件以及哪些控件具有焦点。 TAB、RETURN、ESC 和箭头键等某些键通常会被某些控件忽略,因为它们不被视为输入按键。箭头键被视为导航键,按下这些键通常不会引发 KeyDown(以 Button 为例)

对于这种情况,您可以尝试使用 PreviewKeyDown-Event。

如果我在最小解决方案中使用您提供的代码,我会收到所有键的 KeyDown-Events,但要求 ContentControl 具有焦点。

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();
        dockingContentControl.Focus();
    }

    private void dockingContentControl_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
    {
        Console.WriteLine(e.Key);
    }
}