2016-05-27 9 views
0

Hier habe ich den Code ausprobiert.Eingabefeld für Textbox funktioniert nicht in Windows 10 Universal-Apps

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; 

, aber wenn ich eine beliebige Taste auf der Tastatur drücken Sie auf Textbox zeigt jemand mir bitte für diese helfen ..

+0

@Manu Windows-Enterprise 10 (Build 10240) –

+0

Ich meine die Build verion try >> Windows-Taste + R, geben Sie "Winver" http://www.howtogeek.com/236195/how-to-find-out-which-build-and-version-of-windows-10-you-have/ –

+0

@Manu Windows 10.0 Unternehmen (Buil d 10240) –

Antwort

1

Wenn Sie Zeichen aus Textfeld beschränken möchten Versuchen Sie, Key_Down Event in Textfeld hinzuzufügen.

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

und C# -Code

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

Dies ist wahrscheinlich nicht das Richtige so wie es vielleicht nur für mobile funktioniert! Bessere Regex Muster verwenden – AbsoluteSith

+0

@AbsoluteSith es funktioniert auch in der Desktop-App. – Irfan

+0

Wenn es sich nicht um ein numerisches Zeichen handelt, verhindern Sie, dass die TextBox den Tastendruck verarbeitet – Irfan

1

das Dokument lesen https://msdn.microsoft.com/library/windows/apps/hh702632

Die Inpu t scope gibt einen Hinweis auf die Art der Texteingabe, die von dem Steuerelement erwartet wird. Verschiedene Elemente des Systems können auf den vom Eingabebereich bereitgestellten Hinweis reagieren und eine spezielle Benutzeroberfläche für den Typ bereitstellen. Zum Beispiel könnte die Touch-Tastatur einen Nummernblock für den Text anzeigen, wenn das InputScope des Steuerelements auf Number eingestellt ist.

Das Steuerelement interpretiert möglicherweise auch die Daten, die unterschiedlich eingegeben werden (normalerweise für ostasiatische Eingabefelder). Der Eingabebereich führt keine Überprüfung durch und verhindert nicht, dass der Benutzer Eingaben über eine Hardwaretastatur oder ein anderes Eingabegerät bereitstellt.

+0

no yar es unter Verwendung aller Schlüsselwerte überprüfen. –

+0

No.i schrieb diesen Code auf XAML-Datei –

0

Hier ist eine meiner Lösung

<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; 
    } 
} 
Verwandte Themen