C#-将文本框中输入的值限制在0.0到1.0之间
我是C#和WPF的新手。我的WPF应用程序中有一个文本框,我想将用户在文本框中输入的值限制在0.0和1.0之间。我该怎么做C#-将文本框中输入的值限制在0.0到1.0之间,c#,wpf,textbox,C#,Wpf,Textbox,我是C#和WPF的新手。我的WPF应用程序中有一个文本框,我想将用户在文本框中输入的值限制在0.0和1.0之间。我该怎么做 任何帮助都会非常有帮助。这可能会帮到你 private void TexBoxName_PreviewTextInput(object sender, TextCompositionEventArgs e) { var patten = @"^(0(\.\d*)?|1(\.0*)?)$"; Regex regex = new Regex(patten);
任何帮助都会非常有帮助。这可能会帮到你
private void TexBoxName_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
var patten = @"^(0(\.\d*)?|1(\.0*)?)$";
Regex regex = new Regex(patten);
e.Handled = !regex.IsMatch(e.Text);
}
如果您遵循
MVVM
private double _MyLimittedValue;
public double MyLimittedValue
{
get { return _MyLimittedValue; }
set {
if (value < 0.0 || value > 1.0) { value = 0.0; }
_MyLimittedValue = value;
}
}
private double\u MyLimittedValue;
公共双MyLimittedValue
{
获取{return\u MyLimittedValue;}
设置{
如果(值<0.0 | |值>1.0){value=0.0;}
_MyLimittedValue=值;
}
}
然后使用“mode=TwoWay,updatesourcetrigger=propertychanged”
将MyLimittedValue
绑定到文本框的Text
因此,如果您输入任何其他值,文本框中的文本将变为
0.0
。类似的内容可能适用于您,因为您还将获得以下值:
double valueEntered;
if (!double.TryParse(textBoxName.Text, out valueEntered)
// value is not a valid double
return;
else
if (valueEntered < 0 || valueEntered > 1)
// value is valid
return;
else
// value is not valid
return;
双值输入;
如果(!double.TryParse(textBoxName.Text,out valueEntered)
//值不是有效的双精度
返回;
其他的
如果(输入值<0 | |输入值>1)
//值是有效的
返回;
其他的
//值无效
返回;
为了更好地实现,您应该向我们显示窗口的XAML和隐藏代码。当您使用范围时。请尝试使用变体,即滚动条、进度条和滑块
在您的情况下,滑块是自然的选择,也是最好的选择。您可以使用扩展的WPF工具包,它包括一个数字上下文本框。这样可以更容易地限制控件上的输入。@Camiloteriento:绝对可以。!谢谢您的更正