我注意到当一个窗口正在处理由其中的文本框引发的 KeyDown 事件并将事件 Handled 标志设置为 true 时,文本框会忽略按下的键并且不会将其添加到其内容中。
根据我对事情如何工作的理解,PreviewKeyDown 事件如果首先从窗口隧道到 TextBox,然后 KeyDown 事件从 TextBox 冒泡到窗口。当窗口的事件处理程序开始设置 Handled 事件时,该事件不再由 TextBox 处理,但我确实看到它有效果,并且按下的键不会添加到 TextBox。
有人可以解释这是如何工作的吗?
(这是一个普遍的问题,但在我看到我们正在使用的第三方控件中的类似行为后提出,这给我带来了问题,因为我希望控件处理事件但阻止它向上冒泡。)