4

我一直在使用 WPF 处理所有的隧道和冒泡事件,我必须说它们简直是伟大而强大的。
但我总是质疑自己是使用 [ PreviewKeyUp 和 KeyUp ] 还是 [ PreviewKeyDown 和 Keydown ]?

我应该使用哪种组合来对按键做出反应,为什么?

4

2 回答 2

5

取决于你想做什么:

  1. PreviewKeyDown = BEFORE the key is press
    示例:如果您在文本框上有事件,则当前按下的键不会添加到 TextBox.Text
  2. PreviewKeyUp = 放开钥匙之前
  3. KeyDown = 按下键后
    示例:如果您在文本框上有事件,则当前按下的键将添加到 TextBox.Text
  4. KeyUp = 放开钥匙后

所以这又取决于你想做什么。如果要添加 TextBox 验证,请使用 PreviewKeyDown 忽略不正确的文本。

如果您想在用户放开 SPACE 时做某事,那么我们使用 KeyUp

于 2012-02-02T17:30:38.070 回答
0

这一切都取决于情况,例如,在列表中选择一个项目将需要 KeyDown 以便可以按住键并更改所选项目。

如果您有一个具有多种视觉状态的元素,例如一个按钮,KeyDown 可能会改变视觉状态,然后 KeyUp 会将视觉恢复到原始状态并执行命令。

在您的情况下,这完全取决于您希望何时引发事件,我不会说任何一个比另一个更好,因为它们用于不同的用途。

于 2012-02-02T17:23:07.477 回答