В настоящее время я работаю над WPF-приложением, где я хотел бы иметь TextBox
, который может содержать только числовые записи. Я знаю, что могу проверить его содержимое, когда потерял фокус и заблокировал контент от числа, но в другом приложении Windows Form мы используем, чтобы полностью блокировать любые записи, кроме цифр, записывать. Кроме того, мы используем этот код в отдельной DLL для ссылки на него во многих местах.
Вот код в 2008 году, не использующий WPF:
Public Shared Sub BloquerInt(ByRef e As System.Windows.Forms.KeyPressEventArgs, ByRef oTxt As Windows.Forms.TextBox, ByVal intlongueur As Integer)
Dim intLongueurSelect As Integer = oTxt.SelectionLength
Dim intPosCurseur As Integer = oTxt.SelectionStart
Dim strValeurTxtBox As String = oTxt.Text.Substring(0, intPosCurseur) & oTxt.Text.Substring(intPosCurseur + intLongueurSelect, oTxt.Text.Length - intPosCurseur - intLongueurSelect)
If IsNumeric(e.KeyChar) OrElse _
Microsoft.VisualBasic.Asc(e.KeyChar) = System.Windows.Forms.Keys.Back Then
If Microsoft.VisualBasic.AscW(e.KeyChar) = System.Windows.Forms.Keys.Back Then
e.Handled = False
ElseIf strValeurTxtBox.Length < intlongueur Then
e.Handled = False
Else
e.Handled = True
End If
Else
e.Handled = True
End If
Есть ли эквивалентный способ в WPF? Я бы не прочь, если это в стиле, но я новичок в WPF, поэтому стиль немного неясен тем, что они могут или не могут сделать.