C#-将文本框中输入的值限制在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);

我是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);
    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:绝对可以。!谢谢您的更正