Handling VirtualKey in Windows 8 Store Apps with C#

windows-8, windows-store-apps

Solution

Got an answer elsewhere. For those that are interested...

public Foo()
{
    this.InitializeComponent();
    Window.Current.CoreWindow.CharacterReceived += KeyPress;
}

void KeyPress(CoreWindow sender, CharacterReceivedEventArgs args)
{
    args.Handled = true;
    Debug.WriteLine("KeyPress " + Convert.ToChar(args.KeyCode));
    return;
}

Even better, move the `Window.Current.CoreWindow.CharacterReceived += KeyPress;` into a GotFocus event handler, and add `Window.Current.CoreWindow.CharacterReceived -= KeyPress;` into a LostFocus event handler.

Problem

I'm aware of how to handle key events, i.e. ``` private void Page_KeyUp(object sender, KeyRoutedEventArgs e) { switch (e.Key) { case Windows.System.VirtualKey.Enter: // handler for enter key break; case Windows.System.VirtualKey.A: // handler for A key break; default: break; } } ``` But what if I need to discern between lower-case 'a' and upper-case 'A'? Also, what if I want to handle keys like the percent sign '%'?

Original source

Related problems