I have been using WPF with all the tunneling and bubbling events and I must say they are simply great and powerful.
But what I always question myself is whether to use the [PreviewKeyUp and KeyUp] or [PreviewKeyDown and Keydown]?
Which combination should I be using to react to key presses and why?
Depends on what you want to do:
Example: If you have the event on a textbox the current key pressed is not added to the TextBox.Text
Example: If you have the event on a textbox the current key pressed is added to the TextBox.Text
So again it depends on what you want to do. If you want to add TextBox validation use PreviewKeyDown to ignore the text if its incorrect.
If you want to do something when the user let go of SPACE then us KeyUp