如何检测其他代码设置e.Handled = true?

时间:2014-03-27 15:10:29

标签: c# wpf event-handling telerik

使用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

1 个答案:

答案 0 :(得分:1)

您可以使用Snoop。它可以告诉你,哪个Element set handling = true。 如果您需要处理这些事件,可以使用EventManager.RegisterClassHandler()