WPF文本框事件
本文关键字:事件 文本 WPF | 更新日期: 2023-09-27 18:07:04
我有一个文本框,我需要用户只输入西里尔字母。用户不能输入数字、特殊字符(空格除外)和拉丁字符!变量"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;
}