如何屏蔽windows phone 8中phonetextbox中的文字?

时间:2013-04-16 13:24:19

标签: windows-phone-8

在windows phone 8中,如果我选择了手机文本框并输入了一些文字,我想掩盖这个文字,如何实现呢?

2 个答案:

答案 0 :(得分:1)

我用这段代码解决了我的问题:

xaml中的

<toolkit:PhoneTextBox Margin="-20,48,0,0"                              
                            InputScope="TelephoneAreaCode"
                            Style="{StaticResource PhoneTextBoxStyleGreen}"                                              
                            x:Name="PhoneNumber" Height="72" VerticalAlignment="Top" Width="200" MaxLength="10" Hint="Ceular"/>

viewmodel:

private string _phoneNumber;
    public string PhoneNumber
            {
                get
                {                
                    return FormattedPhoneNumber(_phoneNumber);                
                }
                set
                {               
                    _phoneNumber = value;                       
                    NotifyOfPropertyChange(() => PhoneNumber);                
                }
            }

public string FormattedPhoneNumber(string pn)
        {
            if (pn == null)
                return string.Empty;

            switch (pn.Length)
            {
                case 5:
                    {
                        if (!pn.Contains("-"))
                        {
                            return Regex.Replace(pn, @"(\d{4})(\d{1})", "$1-$2");
                        }
                        else
                        {
                            return pn.Replace("-", String.Empty);
                        }

                    }
                case 9:
                    {
                        var sbPhoneNumber = pn.Replace("-",String.Empty);
                        return Regex.Replace(sbPhoneNumber, @"(\d{4})(\d{4})", "$1-$2");
                    }
                case 10:
                    {
                        var sbPhoneNumber = pn.Replace("-", String.Empty);
                        return Regex.Replace(sbPhoneNumber, @"(\d{5})(\d{4})", "$1-$2");                        
                    }                
                default:
                    {                        
                        return pn;
                    }
            }            
        }

我的面具:如果8个数字:8888-8888           如果9号:00000-0000

答案 1 :(得分:0)

在.XAML文件中添加TextBox上的TextChanged事件

<TextBox Name="tvCelular" TextChanged="OnTextCelularChanged" MaxLength="14" InputScope="Number"/>

创建一个Mask.cs类

/// <summary>
/// created by MAYCON CARDOSO
/// </summary>
public class Mask {
    private bool isUpdating = false;
    private string old = "";

    public String unmask(String s) {
        return s.Replace(".", "").Replace("-", "")
                .Replace("/", "").Replace("(", "")
                .Replace(")", "");
    }

    public void performFilter(string mask, TextBox ediTxt) {
        string s = ediTxt.Text;

        String str = unmask(s);

        String mascara = "";
        if (isUpdating) {
            old = str;
            isUpdating = false;
            return;
        }
        int i = 0;
        foreach(char m in mask.ToCharArray()) {
            if (m != '#' && str.Length != old.Length) {
                mascara += m;
                continue;
            }
            try {
                mascara += str[i];
            }
            catch (Exception e) {
                break;
            }
            i++;
        }

        isUpdating = true;
        ediTxt.Text  = mascara;
        ediTxt.SelectionStart  = mascara.Length;
    }
}

在您的cs文件中添加此代码

 private void OnTextCelularChanged(object sender, TextChangedEventArgs e) {
        mCelularMask.performFilter("(##)####-#####",tvCelular);    
    }