在开发Windows Phone应用时,一个非常通用的需求就是限定文本框的输入内容。最直接的办法是限定弹出的软键盘的类型。比如有些文本框只允许输入数字,那就弹出数字键盘,不让用户选择其他键盘。这样做的好处有两个:节省后台验证逻辑、方便用户交互。
要限定键盘类型,做法很简单,就是设置TextBox控件的InputScope属性。比如输入电话号码的文本框可以这样写:
<TextBox InputScope="Number" Name="txtPhoneNumber" />
这样弹出的文本框就是数字键盘:
所有的InputScope类型见下表:
翻译自MSDN:http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh393998%28v=vs.105%29.aspx
键盘 | 备注 | InputScope |
包括自动修正、建议和表情 | Text | |
默认键盘 |
AddressCity, AddressCountryName, AddressCountryShortName, AddressStateOrProvince, AddressStreet*, AlphanumericFullWidth, AlphanumericHalfWidth, Bopomofo, DateDayName, DateMonthName, Default, FileName, FullFilePath, Hanja, Hiragana, KatakanaFullWidth, KatakanaHalfWidth, LogOnName, OneChar, Password, PersonalFullName, PersonalGivenName, PersonalMiddleName, PersonalNamePrefix, PersonalNameSuffix, Yomi *当手机的语言设置为英语、法语、菲律宾语、马来语、印度尼西亚语以外的语言时,AddressStreet会弹出这种键盘。 |
|
包括@和.com键。按住.com键可以弹出其他选项(.org, .com, .edu, .net) (译者注:好样的,没有.cn!.cn,人类的耻辱!) |
EmailNameOrAddress, EmailSmtpAddress, EmailUserName | |
包括@和.com键。按住.com键可以弹出其他选项(.org, .com, .edu, .net) 按住“.”显示其他选项(- + & : . /) |
Url | |
按下123键切换到电话号码键盘。按住"."显示其他选项(- _ , .) | NameOrPhoneNumber | |
包含数字和符号 |
AddressStreet*, CurrencyAmountAndSymbol, CurrencyChinese, PostalAddress, PostalCode, Time *当手机的语言设置为英语、法语、菲律宾语、马来语、印度尼西亚语以外的语言时,AddressStreet会弹出这种键盘。 |
|
模仿电话键盘,按住.显示其他选项(, ( ) X .) 按住0输入+ | TelephoneAreaCode, TelephoneCountryCode, TelephoneLocalNumber, TelephoneNumber | |
包括数字和.,按住.显示其他选项(. , -) | CurrencyAmount, DateDay, DateMonth, DateYear, Digits, Number, NumberFullWidth, NumericPassword, TimeHour, TimeMinorSec | |
包括建议 (译者注,建议的意思类似于VS的智能提示) |
Maps, Search | |
包括建议。按住=号显示其他选项(( = ) : < >)。按住&123切换到数字和符号键盘,为输入数字和公式而优化。 | Formula | |
包括建议和表情,但是木有自动修正 | Chat |