簡體   English   中英

如何使Silverlight中的XAML文本框僅接受最大小數點后一位精度的數字

[英]How to make a xaml textbox in silverlight accept only numbers with maximum one decimal point precision

如何在Silverlight中使xaml文本框僅接受精度為小數點后一位的數字。 我已經嘗試過此問題的答案如何在Windows 8中如何使文本框僅接受數字並且僅接受小數點后一位 但這沒有用。 我怎樣才能做到這一點 ?

您可以編寫這樣的函數,

 txtDiscount.KeyDown += new KeyEventHandler(EnsureNumbers);

//只允許數字的方法

void EnsureNumbers(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Tab)
        {
            return; 
        }
        bool result =  EnsureDecimalPlaces();
        if (result == false)
        {
            var thisKeyStr = "";
            if (e.PlatformKeyCode == 190 || e.PlatformKeyCode == 110)
            {
                thisKeyStr = ".";
            }
            else
            {
                thisKeyStr = e.Key.ToString().Replace("D", "").Replace("NumPad", "");
            }
            var s = (sender as TextBox).Text + thisKeyStr;
            var rStr = "^[0-9]+[.]?[0-9]*$";
            var r = new Regex(rStr, RegexOptions.IgnoreCase);
            e.Handled = !r.IsMatch(s);
        }
        else
        {
            e.Handled = true;
        }
    }

確保僅保留小數點后1位的方法,

  bool EnsureDecimalPlaces()
    {

        string inText = txtDiscount.Text;
        int decPointIndex = inText.IndexOf('.');
        if (decPointIndex < 1 || decPointIndex == 1)
        {
            return false;
        }
        else
            return true;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM