C# 关键事件不存在';t通过箭头键激活
首先,我是WPF的工作人员,我是新手 我向xaml中的内容控件添加了KeyDownEvent: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
<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);
}
}