WPF文本框继承KeyDown不会在空格上触发?

WPF文本框继承KeyDown不会在空格上触发?,wpf,.net-4.0,Wpf,.net 4.0,我有一个继承wpf文本框的类,我已经覆盖了OnTextChanged、OnTextInput、OnKeyDown,现在是有趣的部分 如果我按了除空格以外的任何键,则会触发所有3个事件,但如果我按了空格则只会触发ContextChanged?那么,为什么空间不算作键或文本输入呢?您必须处理PreviewKeyDown事件,因为默认情况下,空间会被处理,因此会被框架占用。我可以问一下,为什么空间是在预览时处理的,而不像其他键那样以正常方式处理的吗?,但是是的,我会尝试一下。@Petoj这一切都取决于

我有一个继承wpf文本框的类,我已经覆盖了OnTextChanged、OnTextInput、OnKeyDown,现在是有趣的部分


如果我按了除空格以外的任何键,则会触发所有3个事件,但如果我按了空格则只会触发ContextChanged?那么,为什么空间不算作键或文本输入呢?

您必须处理
PreviewKeyDown
事件,因为默认情况下,空间会被处理,因此会被框架占用。

我可以问一下,为什么空间是在预览时处理的,而不像其他键那样以正常方式处理的吗?,但是是的,我会尝试一下。@Petoj这一切都取决于实现者是否将事件标记为已处理。理论上,它与文本布局有关,因为当TextBox.AcceptsReturn标记为true时,它也会影响Enter键。