-1

我想从客户那里获取电话号码,但我希望它被视为()__-__类似格式,并且当客户输入数字时它不会消失,我希望得到的结果为(555) 555-55.

我该怎么做呢?我应该使用特定的控件吗?

4

1 回答 1

0

你想要的是一个 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 属性确定。

< 降档。将后面的所有字符转换为小写

> 上移。将后面的所有字符转换为大写。

| 禁用之前的升档或降档。

\ 逃脱。转义掩码字符,将其转换为文字。“\”是反斜杠的转义序列。

于 2012-07-03T14:35:02.050 回答