<分区>
我想创建一个只接受特定范围内的数值的文本框。 实现此类 TextBox 的最佳方法是什么?
我考虑过派生 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 的函数)
一些建议的解决方案可能更好,但对于我需要的简单功能,此解决方案是实现起来最简单、最快捷的解决方案,同时足以满足我的需求。