我试图让xctk:IntegerUpDown
只接受数字。说实话,我很惊讶为什么数字控件会接受非数字。如果有人知道这个的实际原因,请告诉我。
所以我试过:
FormatString
到N
和ParsingNumberStyle
到Integer
但它仍然接受非数字字符,例如字母。我该如何解决这个问题?
答案 0 :(得分:2)
您可以使用PreviewKeyDown
事件。我添加了一个TextBox
的示例,该示例也适用于您的NumericUpDown
。
XAML:
<TextBox PreviewKeyDown="OnPreviewKeyDown" />
CS:
public void OnPreviewKeyDown(object sender, KeyEventArgs args)
{
switch (args.Key) {
case Key.D0: case Key.NumPad0:
case Key.D1: case Key.NumPad1:
case Key.D2: case Key.NumPad2:
case Key.D3: case Key.NumPad3:
case Key.D4: case Key.NumPad4:
case Key.D5: case Key.NumPad5:
case Key.D6: case Key.NumPad6:
case Key.D7: case Key.NumPad7:
case Key.D8: case Key.NumPad8:
case Key.D9: case Key.NumPad9:
args.Handled = false;
break;
default:
args.Handled = true;
break;
}
}