When you load the UserControl set the focus to it. The Key Press event is a bubble event that travels from the currently focused control down the control tree. So if the user control is loaded but not has focus then a control beneath it will receive the key press bypassing it.
At least based on the theory behind it all that is what happens.
Also, I think you should look at the "PreviewKeyDown" event rather than the KeyDown event because as soon as something uses the KeyDown it stops bubbling where as PreviewKeyDown I believe continues to bubble unless you cancel it in the event args. Was slighlty wrong here, but have a read of this to understand routed events in WPF
http://joshsmithonwpf.wordpress.com/2007/06/22/overview-of-routed-events-in-wpf/[
^]