现在的位置: 首页 > 综合 > 正文

TextBox弹出的输入键盘的设置及限制输入功能

2017年11月14日 ⁄ 综合 ⁄ 共 1040字 ⁄ 字号 评论关闭

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;但是不起作用,大神们如果有研究出来给我留个回复,谢谢了哈!

抱歉!评论已关闭.