Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关键事件不存在';t通过箭头键激活_C#_Wpf_Xaml_Keyboard Events_Arrow Keys - Fatal编程技术网

C# 关键事件不存在';t通过箭头键激活

C# 关键事件不存在';t通过箭头键激活,c#,wpf,xaml,keyboard-events,arrow-keys,C#,Wpf,Xaml,Keyboard Events,Arrow Keys,首先,我是WPF的工作人员,我是新手 我向xaml中的内容控件添加了KeyDownEvent: <ContentControl Grid.Row="1" Name="dockingContentControl" KeyDown="dockingContentControl_KeyDown"/> 它显示了我按下的按钮 但不知怎的,它并没有用箭头键触发 我不知道为什么所有其他按钮(我想全部,没有全部测试)都在工作,但箭头键没有 我是错过了什么,还是必须添加一些额外的代码 推荐:除fn

首先,我是WPF的工作人员,我是新手

我向xaml中的内容控件添加了KeyDownEvent:

 <ContentControl Grid.Row="1" Name="dockingContentControl" KeyDown="dockingContentControl_KeyDown"/>
它显示了我按下的按钮

但不知怎的,它并没有用箭头键触发

我不知道为什么所有其他按钮(我想全部,没有全部测试)都在工作,但箭头键没有

我是错过了什么,还是必须添加一些额外的代码

推荐:
fn
-按钮外,所有其他按钮都可识别。
背景图表正在移动,是否该图表具有焦点而不“转发”输入?

这取决于您在ContentControl中放置的控件以及具有焦点的控件。某些控件通常会忽略某些键,如TAB键、RETURN键、ESC键和箭头键,因为它们不被视为输入按键。箭头键被视为导航键,按下这些键通常不会将键向下提升(例如按钮)

您可以尝试在这种情况下使用-Event

如果我在最小的解决方案中使用您提供的代码,我会收到所有键的KeyDown事件,但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);
    }
}

PreviewKeyDown成功了。也改变了焦点。谢谢
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);
    }
}