使用C#,.NET 4,WPF。
我有一个Telerik富文本控件丢失了某些键事件(制表符,退格键,删除键和箭头键都是细节)。
出于调试目的,我为PreviewKeyDown,KeyDown,CommandExecuting和DocumentContentChanged添加了处理程序。在DEBUG和RELEASE模式下,无论是否存在处理程序,行为都会出现。
如果我按下上面列出的键以外的其他键,我会按照上面列出的顺序获取事件。例如,如果我按下'a'键,我会得到PreviewKeyDown,KeyDown,CommandExecuting和DocumentContentChanged。
如果我按下右箭头键,我会得到PreviewKeyDown,并且没有其他事件触发。
我怀疑是某事在消息链中的某个点捕获了KeyDown事件,然后才转到我并设置e.Handled = true。
是否有任何可用的工具可以让我检测到KeyDown事件并查看它是什么代码e.Handled被修改?我知道我在这里伸展......
谢谢!
rjsjr
答案 0 :(得分:1)
您可以使用Snoop。它可以告诉你,哪个Element set handling = true。 如果您需要处理这些事件,可以使用EventManager.RegisterClassHandler()。