private void LetterButtonClick(object sender, RoutedEventArgs e) { VirtualKey key = sender as VirtualKey; if (key == null || ReferenceTextBox == null) { return; } string letter = key.GetKey(); int length = ReferenceTextBox.Text.Length; //Special case if (key.Key == Windows.System.VirtualKey.Back) { if (length > 0) { ReferenceTextBox.Text = ReferenceTextBox.Text.Remove(length - 1, 1); } } else if (key.Key == Windows.System.VirtualKey.Space) { ReferenceTextBox.Text += " "; } else if (key.Key == Windows.System.VirtualKey.LeftShift) { if (!_leftShiftEnabled) { _leftShuftKey = key; _leftShiftPreviousColor = _leftShuftKey.Background; _leftShuftKey.Background = new SolidColorBrush(Colors.LightBlue); _leftShiftEnabled = true; } else { _leftShuftKey.Background = _leftShiftPreviousColor; _leftShiftEnabled = false; } return; } else { //Always start as lower letter = letter.ToLower(); if (_leftShiftEnabled) { if (key.HasShiftKey) { letter = key.GetShiftKey(); } else { letter = letter.ToUpper(); } } ReferenceTextBox.Text += letter; } if (_leftShuftKey != null && _leftShiftPreviousColor != null) { _leftShuftKey.Background = _leftShiftPreviousColor; } _leftShiftEnabled = false; }