Freigeben über


begin

private void TextBox_OnKeyDown(object sender, KeyRoutedEventArgs e)

{

// Supports numbers and a single decimal

// By default this should be the "." for US English, but lets get the system assigned value just in case

String decimalString = System.Globalization.NumberFormatInfo.CurrentInfo.CurrencyDecimalSeparator;

char decimalChar = Convert.ToChar(decimalString);

char theKey = Convert.ToChar(e.Key);

int thePeriodKey = 190;

TextBox tb = (TextBox)sender;

if (Char.IsDigit(theKey) || Char.IsControl(theKey)) { } // it's a digit

else if (theKey == thePeriodKey && tb.Text.IndexOf(decimalString) == -1) { } // is it the first '.'

} else // not a valid key

{

e.Handled = true; // we have to indicate we handled it or the key will be put in the control

PlayErrorSound();

var specialFX = msgTextBlock.Resources["errorMessageAnimation"] as Storyboard;

specialFX.Begin();

}