Событие WPF TextBox

1

У меня есть текстовое поле, и мне нужно, чтобы пользователь вводил только кириллические буквы. Пользователь не может вводить числа и специальные символы (кроме пробела) и латинские символы! Значение переменной "l" я поставил сам.

Как я могу сделать событие KeyDown для этого?

В WindowsForms я делаю это так:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{

    char l = e.KeyChar;
    if ((l < 'А' || l > 'я') && l != '\b' )
    {
       e.Handled = true;
    }
}
  • 1
    Пожалуйста, покажите, что вы сделали до сих пор.
  • 1
    Это может иметь что-то интересное stackoverflow.com/questions/1103765/…
Теги:
wpf

1 ответ

1
Лучший ответ

Самый простой способ, который я обнаружил, - использовать событие OnPreviewTextInput:

Разметка:

<TextBox PreviewTextInput="UIElement_OnPreviewTextInput" />

Обработчик:

private void UIElement_OnPreviewTextInput(object sender, TextCompositionEventArgs e)
{
    bool isCyrillic = Regex.IsMatch(e.Text, @"\p{IsCyrillic}");
    e.Handled = !isCyrillic;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню