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

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

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

Number和TelephoneNumber:

   

而这两种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 中让输入框只能输入数字:

1. 将输入框的InputScope设为TelephoneNumber

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

源代码下载: 

 

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

posted @   Alexis  阅读(3478)  评论(12编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2010-07-12 一步步打造漂亮的新闻列表(无刷新分页、内容预览)(4)
点击右上角即可分享
微信分享提示