首页 > 解决方案 > 文本框/数字框过滤 WINUI3

问题描述

是否可以实现一个 TextBox/NumberBox 来过滤并且只接受实时数值,就像 NumberBox 正常所做的那样,但不仅仅是在用户完成输入时,如果是这样,我该怎么做?

标签: .netxamluwpwinuiwinui-3

解决方案


一般的方法是处理BeforeTextChanging事件:

private void TextBox_BeforeTextChanging(TextBox sender, TextBoxBeforeTextChangingEventArgs e)
{
    if (!string.IsNullOrEmpty(e.NewText))
        foreach (char c in e.NewText)
            if (!char.IsDigit(c))
            {
                e.Cancel = true;
                return;
            }
}

XAML:

<TextBox BeforeTextChanging="TextBox_BeforeTextChanging" />

推荐阅读