我一直在使用WPF来处理所有的隧道和冒泡事件,我必须说它们非常强大
但我一直在问自己是使用[PreviewKeyUp和KeyUp]还是[PreviewKeyDown和Keydown]?
我应该使用哪种组合来对按键做出反应,为什么?
取决于您想要做什么:
- PreviewKeyDown=按键前
示例:如果事件发生在文本框上,则当前按下的键不会添加到文本框中 - PreviewKeyUp=松开键之前
- KeyDown=按键后
示例:如果您在文本框中有事件,则当前按下的键将添加到文本框中 - KeyUp=松开键后
同样,这取决于你想做什么。如果你想添加TextBox验证,请使用PreviewKeyDown忽略不正确的文本
如果你想在用户放开SPACE时做点什么,那么我们KeyUp
这一切都取决于情况,例如,在列表中选择一个项目将需要KeyDown,这样就可以按住键并更改所选项目。
如果您有一个具有多个视觉状态的元素,例如一个按钮,KeyDown可能会更改视觉状态,然后KeyUp会将视觉返回到原始状态并执行命令。
在你的情况下,这完全取决于你希望何时举办活动,我不会说任何一个比另一个更好,因为它们有不同的用途。