我目前正在开发一个 WPF 应用程序,我希望在其中有一个TextBox
只能包含数字条目的应用程序。我知道当我失去焦点并阻止内容为数字时,我可以验证它的内容,但在其他 Windows 窗体应用程序中,我们使用完全阻止除数字之外的任何输入被写下。另外,我们习惯于将该代码放在一个单独的 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 的新手,所以风格对于他们能做什么或不能做什么有点模糊。