Xaml 如何在DoubleUpDown中防止数字之间出现空格键?
我在屏幕上使用双重上下控制。我覆盖OnKeyPressed in.cs文件以防止任何非数字键进入。我不能在数字前按空格键。但我仍然可以在一个数字之间输入一个空格键,它不会转到我实现的覆盖方法 我还可以选择控件中的所有数字,然后按空格键 如何预防 下面是我的覆盖方法:Xaml 如何在DoubleUpDown中防止数字之间出现空格键?,xaml,mvvm,space,numeric,Xaml,Mvvm,Space,Numeric,我在屏幕上使用双重上下控制。我覆盖OnKeyPressed in.cs文件以防止任何非数字键进入。我不能在数字前按空格键。但我仍然可以在一个数字之间输入一个空格键,它不会转到我实现的覆盖方法 我还可以选择控件中的所有数字,然后按空格键 如何预防 下面是我的覆盖方法: protected override void OnKeyDown(KeyEventArgs e) { if ("OemPeriodDecimal".Contains(e.Key.ToString()
protected override void OnKeyDown(KeyEventArgs e)
{
if ("OemPeriodDecimal".Contains(e.Key.ToString()) && DoubleUpDown.Text.Contains("."))
{
e.Handled = true;
}
else
{
e.Handled = !("D1D2D3D4D5D6D7D8D9D0OemPeriodDecimalNumPad0NumPad1NumPad2NumPad3NumPad4NumPad5NumPad6NumPad7NumPad8NumPad9".Contains(e.Key.ToString()));
}
}
我找到了解决办法
它必须使用OnPreviewKeyDown
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
if ("OemPeriodDecimal".Contains(e.Key.ToString()) && DoubleUpDown.Text.Contains("."))
{
e.Handled = true;
}
else
{
e.Handled = !("D1D2D3D4D5D6D7D8D9D0OemPeriodDecimalNumPad0NumPad1NumPad2NumPad3NumPad4NumPad5NumPad6NumPad7NumPad8NumPad9".Contains(e.Key.ToString()));
}
}