文本框按下任何键

本文关键字:任何键 文本 | 更新日期: 2023-09-27 18:04:04

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

文本框按下任何键

PreviewKeyDown-Event就是你需要的。它在TextBox处理键消息之前被触发,因此您得到所有键的事件。
如果你在PreviewKeyDownEvent中使用一个键,你可以设置事件。属性设置为true,则文本框将不再注意该键。
您将发现许多事件的"预览"前缀。这是一种经常使用的模式。点击这里了解更多信息。有趣的部分是"路由策略"一节。