Windows Phone 8 で、電話のテキスト ボックスを選択してテキストを入力した場合、このテキストをマスクしたいのですが、これを実現するにはどうすればよいですか?
1103 次
2 に答える
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);
}
于 2016-08-08T14:30:11.633 に答える