private static void keyTypedHandler(object sender, RoutedEventArgs e) { KeyboardPanel panel = (KeyboardPanel)sender; CharacterKey key = (CharacterKey)e.OriginalSource; string text = key.getShiftAdjustedValue(); Typeface typeface = new Typeface(panel.textBox.FontFamily, panel.textBox.FontStyle, panel.textBox.FontWeight, panel.textBox.FontStretch); FormattedText ft = new FormattedText(panel.textBox.Text, System.Globalization.CultureInfo.CurrentCulture, System.Windows.FlowDirection.LeftToRight, typeface, panel.textBox.FontSize, Brushes.Black); if (ft.Width > panel.textBox.ActualWidth - 10) { isOverflow = true; panel.textBox.Background = new SolidColorBrush(Colors.Red); panel.textBox.IsReadOnly = true; panel.sendUpdateMessage(); panel.contextLabel.Content = "Too many characters: (Use red arrow key to rub out)"; } else { panel.type(text); } e.Handled = true; }
private static void clickListener(object sender, RoutedEventArgs e) { CharacterKey key = (CharacterKey)sender; key.RaiseEvent(new RoutedEventArgs(CharacterKey.KeyTypedEvent, key)); }
private static void ShiftChangedCallback(DependencyObject obj, DependencyPropertyChangedEventArgs e) { CharacterKey key = (CharacterKey)obj; key.updateShiftDisplayState(); }