Nasıl sadece WPF sayısal girişi kabul etmek için bir TextBox alabilirim?
Basamak ve ondalık, ama hiçbir iz kabul ediyorum.
Baktım örnekler kullanarak NumericUpDown kontrolü için Win ve this sample of a NumericUpDown custom control from Microsoft. Ama çok farklı geliyor gibi NumericUpDown (tarafından desteklenen WPF ya da değil gidiş için işlevselliği sağlamak istiyorum. Benim app tasarlanmıştır ve bu şekilde, aklı başında olan hiç kimse ile okları uğraşmak istiyorum. Herhangi bir pratik anlamda, benim uygulama kapsamında yapmıyorlar.
Basit bir yöntem için standart bir WPF TextBox tek istediğim karakter kabul yapmak için arıyorum. Bu mümkün mü? Pratik mi?
ÇOK teşekkürler!
CEVAP
Önizleme metin girişi bir olay Ekle. Öyle gibi: <TextBox PreviewTextInput="PreviewTextInput" />
.
Sonra içindeki e ayarlayın.Eğer metin izin verilmez, eğer ele değil. e.Handled = !IsTextAllowed(e.Text);
İsTextAllowed basit bir düzenli ifade eğer yazdığınız ne izin gerektiğini görmek için kullanıyorum. Benim durumumda ben sadece sayılar, nokta ve tire izin vermek istiyor.
private static bool IsTextAllowed(string text)
{
Regex regex = new Regex("[^0-9.-] "); //regex that matches disallowed text
return !regex.IsMatch(text);
}
DataObject kadar yanlış veri kanca yapıştırma önlemek istiyorsanız.here görüldüğü gibi yapıştırma olayı DataObject.Pasting="TextBoxPasting"
(kod) bölümünden:
// Use the DataObject.Pasting Handler
private void TextBoxPasting(object sender, DataObjectPastingEventArgs e)
{
if (e.DataObject.GetDataPresent(typeof(String)))
{
String text = (String)e.DataObject.GetData(typeof(String));
if (!IsTextAllowed(text))
{
e.CancelCommand();
}
}
else
{
e.CancelCommand();
}
}
Nasıl sadece sayısal (0-9) HTML ınputb...
Nasıl bir Dize Java sayısal bir tip ol...
Nasıl sadece sayı kabul eden bir textb...
Nasıl YANİ sadece uygulama/json görünt...
Nasıl sadece jQuery ile CSS özelliği p...