I found the solution.
It has to use 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()));
}
}