2016-05-27 56 views
0

這裏我試了一下代碼。文本框的輸入範圍不適用於Windows 10通用應用程序

的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; 

但是當我按下鍵盤它顯示在文本框上的任意鍵的任何一個,請幫助我這個..

+0

@Manu的Windows 10企業(建設10240) –

+0

我指的是構建優化版本試試>> Windows鍵+ R,輸入「winver」http://www.howtogeek.com/236195/how-to-find-out-which-build-and-version-of-windows-10-you-have/ –

+0

@Manu Windows 10.0企業(Buil d 10240) –

回答

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; 
     } 
    } 
+0

這可能不是正確的因爲它可能只適用於手機!更好地使用正則表達式模式 – AbsoluteSith

+0

@AbsoluteSith它也在桌面應用程序中工作。 – Irfan

+0

如果它不是數字字符,請阻止文本框處理鍵擊 – Irfan

1

閱讀文檔https://msdn.microsoft.com/library/windows/apps/hh702632

inpu t範圍提供了該控件所期望的文本輸入類型的提示。系統的各種元素可以響應輸入範圍提供的提示 ,併爲輸入 類型提供專門的用戶界面。例如,當控件的InputScope設置爲Number時,觸摸鍵盤可能會爲文本 輸入顯示一個數字鍵盤。

該控件也可能會解釋輸入的數據不同 (通常用於東亞相關輸入範圍)。輸入範圍 不會執行任何驗證,也不會阻止用戶通過硬件鍵盤或其他輸入設備提供任何輸入。

+0

no yar它取所有的鍵值。 –

+0

No..i在xaml文件上寫下該代碼 –

0

這裏是我的解決方案

<TextBox Name="texbox" TextChanging="intTextBox_TextChanging" MaxLength="10" InputScope="Number" /> 


private void intTextBox_TextChanging(TextBox sender, TextBoxTextChangingEventArgs args) 
{ 
    if (!Regex.IsMatch(sender.Text, "^\\d*?\\d*$") && sender.Text != "") 
    { 
     int pos = sender.SelectionStart - 1; 
     sender.Text = sender.Text.Remove(pos, 1); 
     sender.SelectionStart = pos; 
    } 
} 
相關問題