WPF中的字符串格式

时间:2012-06-29 06:42:42

标签: wpf wpf-controls string-formatting

我想从客户处获取电话号码,但我希望它被视为()__-__格式,当客户输入数字时,它不会消失,我希望得到的结果为{{1 }。

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

1 个答案:

答案 0 :(得分:0)

你想要的是一个MaskedTextBox控件。没有一个开箱即用,但如果你四处搜索,那里有很多它们。例如,请查看the WPF extended toolkit

具有区号的美国电话号码的示例用法,来自以上链接:

<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字母a-z和A-Z。此掩码元素在正则表达式中等同于[a-zA-Z]

     

?   信,可选。限制输入ASCII字母a-z和A-Z。此掩码元素在正则表达式中等同于[a-zA-Z]?

     

&   性格,必需。如果AsciiOnly属性设置为true,则此元素的行为类似于L元素。

     

C   字符,可选。任何非控制角色。如果AsciiOnly属性设置为true,则此元素的行为类似于?元素。

     

A   字母数字,可选。如果AsciiOnly属性设置为true,则它将接受的唯一字符是ASCII字母a-z和A-Z。

     

a   字母数字,可选。如果AsciiOnly属性设置为true,则它将接受的唯一字符是ASCII字母a-z和A-Z。

     

.   小数占位符。使用的实际显示字符将是适合格式提供程序的十进制符号,由控件的FormatProvider属性确定。

     

,   成千上万的占位符。使用的实际显示字符将是适合格式提供程序的千位占位符,由控件的FormatProvider属性确定。

     

:   时间分隔符。使用的实际显示字符将是适合格式提供程序的时间符号,由控件的FormatProvider属性确定。

     

/   日期分隔符。使用的实际显示字符将是适合格式提供程序的日期符号,由控件的FormatProvider属性确定。

     

$   货币符号。显示的实际字符将是适合格式提供程序的货币符号,由控件的FormatProvider属性确定。

     

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

     

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

     

|   禁用上一次上移或下移。

     

\   逃逸。逃离一个面具角色,将其变成文字。 “\”是反斜杠的转义序列。