Hola,
A simple vista debería de funcionar, pero tienes que tomar en cuenta algo, para que el Canvas reciba eventos debe de tener el foco. Es decir, al ejecutar la aplicación, antes de que funcionen las teclas en el Canvas tienes que hacer click sobre el mismo o llegar hasta el Canvas con la tecla Tab, como un componente más.
Prueba a ver si realmente estan llegando los eventos de teclado:
Saludos,