我想从客户那里获取电话号码,但我希望它被视为()__-__
类似格式,并且当客户输入数字时它不会消失,我希望得到的结果为(555) 555-55
.
我该怎么做呢?我应该使用特定的控件吗?
我想从客户那里获取电话号码,但我希望它被视为()__-__
类似格式,并且当客户输入数字时它不会消失,我希望得到的结果为(555) 555-55
.
我该怎么做呢?我应该使用特定的控件吗?
你想要的是一个 MaskedTextBox 控件。没有一个开箱即用的,但如果你四处搜索,就会有很多。例如,查看WPF 扩展工具包。
来自上面链接的带区号的美国电话号码的示例用法:
<xctk:MaskedTextBox x:Name="_maskedTextBox"
Mask="(000) 000-0000" ValueDataType="{x:Type s:String}" />
这里,零表示所需的数字。如果没有任何数据,控件将呈现如下:
(___) ___-____
掩码中除特殊标记之外的任何字符都将呈现为掩码的文字部分,如上例中的括号。这是掩码标记的列表。Source,它适用于旧的 Windows 窗体 MaskedTextBox 而不是 WPF,但工具包版本遵循相同的约定,与大多数其他 WPF 版本一样。
0
数字,必填。该元素将接受 0 到 9 之间的任何单个数字。
9
数字或空格,可选。
#
数字或空格,可选。如果此位置在掩码中为空白,则会在 Text 属性中呈现为空格。允许使用加号 (+) 和减号 (-)。
L
信,必填。将输入限制为 ASCII 字母 az 和 AZ。这个掩码元素等价[a-zA-Z]
于正则表达式。
?
字母,可选。将输入限制为 ASCII 字母 az 和 AZ。这个掩码元素等价[a-zA-Z]?
于正则表达式。
&
字符,必填。如果 AsciiOnly 属性设置为 true,则此元素的行为类似于该L
元素。
C
字符,可选。任何非控制字符。如果 AsciiOnly 属性设置为 true,则此元素的行为类似于该?
元素。
A
字母数字,可选。如果将 AsciiOnly 属性设置为 true,那么它将接受的唯一字符是 ASCII 字母 az 和 AZ。
a
字母数字,可选。如果将 AsciiOnly 属性设置为 true,那么它将接受的唯一字符是 ASCII 字母 az 和 AZ。
.
小数占位符。实际使用的显示字符将是适合格式提供程序的十进制符号,由控件的 FormatProvider 属性确定。
,
千位占位符。实际使用的显示字符将是适合格式提供程序的千位占位符,由控件的 FormatProvider 属性确定。
:
时间分隔符。实际使用的显示字符将是适合格式提供程序的时间符号,由控件的 FormatProvider 属性确定。
/
日期分隔符。实际使用的显示字符将是适合格式提供程序的日期符号,由控件的 FormatProvider 属性确定。
$
货币符号。实际显示的字符将是适合格式提供程序的货币符号,由控件的 FormatProvider 属性确定。
<
降档。将后面的所有字符转换为小写
>
上移。将后面的所有字符转换为大写。
|
禁用之前的升档或降档。
\
逃脱。转义掩码字符,将其转换为文字。“\”是反斜杠的转义序列。