The position of the caret is wrong when after selecting multiple chars then one of Backspace or Delete buttons is clicked.
Example:
Value is 123456 Formated it looks like : 123,456.00
Selected portion is [3,4]. Pressing backspace results in 125 | 6.00 Expected is 12|56.00/ Consider | as the caret position.
The behavior can be observed in Numeric and Currency Inputs.
Possible workaround:
private void RadMaskedNumericInput_PreviewKeyDown(object sender, KeyEventArgs e)
{
var selectionstart = this.numericInput.SelectionStart + this.numericInput.SelectionLength;
if (this.numericInput.SelectionLength > 0 && (e.Key == Key.Back || e.Key == Key.Delete))
this.numericInput.ValueChanged += (ss, ee) =>
{
this.numericInput.SelectionStart = selectionstart;
};
}