1)设置点击输入框时弹出的键盘类型:
<TextBox.InputScope>
<InputScope>
<InputScope.Names>
<InputScopeName NameValue="Number" />
</InputScope.Names>
</InputScope>
</TextBox.InputScope>
其中NameValue的值即为弹出的键盘类型,可以根据自己需要进行改变
2)设置仅对输入的数字进行显示,这里的做法就没有像Android一样,只要在xml里面设置一个属性即可;这里需要添加KeyDown事件即可,对输入的进行判断
private void telNum_KeyDown(object sender, KeyRoutedEventArgs e)
{
if ((e.Key >= VirtualKey.Number0 && e.Key <= VirtualKey.Number9))
{
e.Handled = false;
}
else
e.Handled = true;
}
同时需要注意,这里的Handled处理方式刚好和windows phone相反,windows phone是当e.Handle = true时对键盘输入的内容进行显示,而这里正好相反,不知道是不是metro的bug。
同时还有一个疑问,对Pad弹出的键盘中的输入进行判定不起作用,代码如下
if ((e.Key >= VirtualKey.NumberPad0 && e.Key <= VirtualKey.NumberPad9))
{
e.Handled = false;
}
else
e.Handled = true;
我也有尝试着用同windows phone的逻辑进行判定,即当输入的是数字时,e.Handled = true;但是不起作用,大神们如果有研究出来给我留个回复,谢谢了哈!