欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Windows Phone 实用开发技巧(15):让输入框只能输入数字

程序员文章站 2022-03-08 16:03:54
在做其他平台,无论是WinForm、WPF、Silverlight还是Asp.Net,大家可能都会遇到这样的需求:输入框只能输入数字。其实实现方式都大同小异,获取输入文字的key,...

在做其他平台,无论是WinForm、WPF、Silverlight还是Asp.Net,大家可能都会遇到这样的需求:输入框只能输入数字。其实实现方式都大同小异,获取输入文字的key,判断其是否是可以输入的范围。下面讲一下,如何在windows phone 下让输入框只能输入数字。

我们知道,我们可以设置输入框的InputScope,当输入框获得焦点时,系统弹出不同的SIP。在wnidows  phone中有如下两种InputScope可以弹出输入数字的SIP:

Number和TelephoneNumber:

 Windows Phone 实用开发技巧(15):让输入框只能输入数字  Windows Phone 实用开发技巧(15):让输入框只能输入数字

而这两种SIP中数字对应的Key也是不一样的:

InputScope为 Number的0-9的PlatformKeyCode为48-57(十六进制则为0x30-0x39),Key为D0-D9;

InputScope为 TelephoneNumber的0-9的PlatformKeyCode为96- 105 (十六进制则为0x60-0x69),Key为NumPad0-NumPad9。

需要注意的一点是,在InputScope为Number的SIP中,@和2 、#和3、$和4...)和9 共用一个Key,所以不建议使用InputScope为Number的SIP做为只能输入数字的InputScope。

Windows Phone 实用开发技巧(15):让输入框只能输入数字

 总结:在Windows Phone 中让输入框只能输入数字:

1. 将输入框的InputScope设为TelephoneNumber

2. 注册输入框的KeyDown事件,在事件中做上述的判断

源代码下载:


http://up.2cto.com/2012/0109/20120109045449993.rar

update: 在Mango版本中新增了Number的InputScope,将InputScope设置为Number即可
作者:Alexis