我想创建一个只接受特定范围内数值的文本框。 如何最好地实现这样的文本框?
我考虑继承TextBox并覆盖TextProperty的验证和强制转换。但是,我不确定如何做到这一点,而且我知道派生WPF控件通常不被推荐。
编辑:
我需要一个非常基本的文本框,可以过滤掉所有不是数字的按键输入。 最简单的方法是处理TextBox.PreviewTextInput事件:
private void textBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
int result;
if (!validateStringAsNumber(e.Text,out result,false))
{
e.Handled = true;
}
}
(validateStringAsNumber是我的函数,主要使用Int.TryParse)
一些建议的解决方案可能更好,但对于我需要的简单功能,这个解决方案是最容易且最快速实现的,而且已经足够满足我的需求。