任何按键的文本框keydown?

Cor*_*urn 2 .net c# wpf

在WPF中,我想要一个文本框为该文本框聚焦时的任何按键操作抛出一个事件.我不确定哪些键没有触发KeyDown事件,但作为一个例子,我知道如果我按下左箭头或右箭头,那么它不会触发事件,光标只是向左移动或分别对.我的目标是获得所有System.Windows.Forms.Keys按下的键的枚举值.我已经找到了这个问题约之间的转换Key和Keys现在我只需要拦截任何和每一个关键.是否有我可以响应的不同事件PreviewKeyDown(我会说实话,我不知道正常事件和"预览"事件之间的区别)或文本框上的属性有点像AcceptsTab?

HCL*_*HCL 5

PreviewKeyDown-Event就是您所需要的.它在TextBox处理了关键消息之前被触发,因此您获得了所有键的事件.
如果您在PreviewKeyDownEvent中使用了一个键,则可以将Event.Handled-property设置为true,并且不会再从键中注意TextBox.
您将找到许多事件的"预览" - 前缀.这是一种经常使用的模式.看这里了解更多信息.有趣的部分是"路由策略"部分.