键事件不能通过箭头键激活
本文关键字:激活 事件 不能 | 更新日期: 2023-09-27 18:18:22
首先,我正在使用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
-按钮。背景图表在移动,可能是图表有焦点而没有"向前"输入?
这取决于你在ContentControl中放置了什么控件以及哪个控件有焦点。一些键,如TAB、RETURN、ESC和箭头键,通常被某些控件忽略,因为它们不被视为输入键。方向键被认为是导航键,按下这些键通常不会升高KeyDown(对于按钮来说是一个例子)
在这种情况下你可以尝试使用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);
}
}