我首先与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);
}
它向我展示了我按下的按钮。
但不知怎的,它并没有触发Arrowkeys。
我不知道为什么所有其他(我认为所有,没有测试所有)按钮正在工作,但箭头键没有。
我是否遗漏了某些内容,或者我是否需要添加某些额外的代码。
推荐:除fn
- 按钮外,所有其他按钮均已识别。
背景图表正在移动,可能是图表具有焦点并且没有&#34;前进&#34;输入?
答案 0 :(得分:0)
这取决于您在ContentControl中放置的控件以及具有焦点的控件。某些控件通常会忽略某些键(如TAB,RETURN,ESC和箭头键),因为它们不被视为输入键按下。箭头键被认为是导航键,按下这些键通常不会引发KeyDown(以Button为例)
对于这种情况,您可以尝试使用PreviewKeyDown - 事件。
如果我在最小的解决方案中使用您提供的代码,我会收到所有密钥的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);
}
}