文本框的输入范围在Windows 10通用应用程序中不起作用

时间:2016-05-27 05:07:45

标签: c# windows textbox windows-10 windows-10-universal

我在这里尝试了代码。

的Xaml:

<TextBox Header="Telephone Number" InputScope="TelephoneNumber"/>

CS:

TextBox phoneNumberTextBox = new TextBox();
phoneNumberTextBox.Header="Telephone Number";    
InputScope scope = new InputScope();
InputScopeName scopeName = new InputScopeName();
scopeName.NameValue = InputScopeNameValue.TelephoneNumber;
scope.Names.Add(scopeName);
phoneNumberTextBox.InputScope = scope;

但是当我按下键盘上的任何键时,它会在文本框中显示任何一个,请帮助我。

3 个答案:

答案 0 :(得分:1)

阅读文档https://msdn.microsoft.com/library/windows/apps/hh702632

  

输入范围提供了期望的文本输入类型的提示   控制。系统的各种元素可以响应提示   由输入范围提供,并为输入提供专门的UI   类型。例如,触摸键盘可能会显示文本的数字键盘   当控件的InputScope设置为Number时输入。

     

控件还可能会以不同方式解释输入的数据   (通常用于东亚相关的输入范围)。输入范围   不执行任何验证,并且不会阻止用户   通过硬件键盘或其他输入设备提供任何输入。

答案 1 :(得分:1)

如果要限制文本框中的字符尝试在文本框中添加Key_Down事件。

<TextBox Name="textbox" KeyDown="textbox_KeyDown" MaxLength="10"InputScope="Number" />

和C#代码

 private void textbox_KeyDown(object sender, KeyRoutedEventArgs e)
    {
        if ((e.Key < VirtualKey.NumberPad0 || e.Key > VirtualKey.NumberPad9) & (e.Key < VirtualKey.Number0 || e.Key > VirtualKey.Number9))
        {
            e.Handled = true;
        }
    }

答案 2 :(得分:0)

这是我的解决方案

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (ValorPlantilla)'