Mengehadkan input kotak teks WPF ke nilai angka dan titik perpuluhan
memerlukan kotak teks WPF yang hanya menerima nombor dan titik perpuluhan, tanpa membenarkan sebarang tanda? Walaupun kawalan mungkin kelihatan seperti penyelesaian, ia mungkin tidak sesuai dengan reka bentuk aplikasi anda. Pendekatan yang lebih fleksibel menggunakan peristiwa NumericUpDown
dan PreviewTextInput
. DataObject.Pasting
ke definisi kotak teks anda seperti ini: PreviewTextInput
. <TextBox PreviewTextInput="PreviewTextInput"></TextBox>
jika input sah menggunakan ungkapan biasa. Contoh ini hanya membolehkan digit, tempoh (.), Dan tanda hubung (-): PreviewTextInput
private static readonly Regex _regex = new Regex("[^0-9.-]+"); // Regex for disallowed characters private static bool IsTextAllowed(string text) { return !_regex.IsMatch(text); } private void PreviewTextInput(object sender, TextCompositionEventArgs e) { e.Handled = !IsTextAllowed(e.Text); }
: DataObject.Pasting
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(); } }
Atas ialah kandungan terperinci Bagaimanakah saya boleh menyekat input dalam kotak teks WPF untuk hanya nilai angka dan titik perpuluhan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!