Asignación de teclado en .NET

Si sé que se ha presionado cierta tecla (por ejemplo,Key.D3), y que laCambia tecla @ también está abajo Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift)), ¿cómo puedo saber a qué personaje se refiere (por ejemplo,# en el teclado de EE. UU., signo de libra del Reino Unido en el teclado del Reino Unido, etc.)

Puesto de otra manera, ¿cómo puedo averiguar, programáticamente, queCambi + 3 produce# (no lo haría en un teclado no estadounidense).