У меня есть текстовое поле, и мне нужно, чтобы пользователь вводил только кириллические буквы. Пользователь не может вводить числа и специальные символы (кроме пробела) и латинские символы! Значение переменной "l" я поставил сам.
Как я могу сделать событие KeyDown для этого?
В WindowsForms я делаю это так:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
char l = e.KeyChar;
if ((l < 'А' || l > 'я') && l != '\b' )
{
e.Handled = true;
}
}
Самый простой способ, который я обнаружил, - использовать событие OnPreviewTextInput
:
Разметка:
<TextBox PreviewTextInput="UIElement_OnPreviewTextInput" />
Обработчик:
private void UIElement_OnPreviewTextInput(object sender, TextCompositionEventArgs e)
{
bool isCyrillic = Regex.IsMatch(e.Text, @"\p{IsCyrillic}");
e.Handled = !isCyrillic;
}