The decimal.MinValue is displayed when e negative value is pasted in RadMaskedCurrencyInput when the maskedInput:MaskedInputExtensions.Minimum attached property is set to 0, and the current Value is null.
To work this around, you can override the HandlePaste method of the masked input control.
public class CustomMaskedCurrencyInput : RadMaskedCurrencyInput
{
protected override void HandlePaste()
{
object clipBoardValue = Clipboard.GetText();
if (clipboardValue can be parsed to a number and it is a negative number)
{
// don't call the base method
}
else
{
base.HandlePaste();
}
}
}
RadMaskedNumericInput Maximum value setting is not working with hungarian culture settings.
Steps to reproduce:
- Open the attached project, fix the references and start the application
- Click button "English"
- Select the first item from the dropdown
- Inputs are changing to 1433.2 and 1810.9 - OK
- Select the 2nd item from the dropdown
- Inputs are changing to 0 and 59 - OK
- Click button "Hungarian"
- Select the first item from the dropdown
- Inputs are changing to 1433.2 and 1433.2 - NOT OK, Why?
Thanks,
Roberto
The method should be called after the text that should be copied to the clipboard is extracted. In its original implementation it should only set the text to the clipboard. You should be able to override it and replace the text or use different method for copying into the clipboard. For example: public class CustomMaskedInputControl : RadMaskedDateTimeInput { protected override void SaveTextToClipboard(string text) { Clipboard.SetDataObject(text); } }
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; }; }
Pressing backspace or delete keys produce wrong carret position in numeric input or currency input. For example Value is 1234 formatted like 1,234.0. Caret is between 2 and 3. Pressing backspace leads to 13|4. Expected is 1|34.
RadMaskedTextInput. Value is 12345. Select All. Then press "A" (or random key) while down, press space key and then release it (this happens when you type fast). Expected: Value is "A ". Actual Value is " " (A is removed). Workaround: public class CustomInput : RadMaskedTextInput { protected override void OnKeyDown(KeyEventArgs e) { if (this.Value != null && this.SelectionLength == this.Value.Length && this.SelectionLength > 0) { this.ClearCommand.Execute(null); } base.OnKeyDown(e); } }
You can subscribe to the PreviewKeyDown event of the control. In the event handler, you can double check if all the text is select and if the delete key is pressed. If yes, you can execute the clear command of the control. private void TxtPhone_PreviewKeyDown(object sender, KeyEventArgs e) { var myMask = sender as RadMaskedTextInput; if (e.Key == Key.Delete && myMask.Text.Length == myMask.SelectionLength) { myMask.ClearCommand.Execute(null); } }
MaskedInput's Value is bound to property of an Entity class. This property has EditableAttribute. MaskedInput's will set IsReadOnly True if the EditableAttribute's AllowEdit is False. Clients need mechanism to stop this validation in MaskedInput.
The issue is reproducible with NoMask and UpdateValueEvent=LostFocus. The Clear button clears the whole content while deleting with the Backspace and Delete keys leaves the separator symbols. When the focus is moved outside of the masked input, the symbols are removed.
The workaround is to create a custom class which derives from RadMaskedTextInput and override the OnSelectionOnFocus() method. protected override int OnSelectionOnFocus(SelectionOnFocus selectionOnFocus) { if (MaskedInputExtensions.GetCaretToEndOfTextOnFocus(this)) { return this.Text != null ? this.Text.Length : 0; } if (selectionOnFocus == SelectionOnFocus.Default) { return 0; } return base.OnSelectionOnFocus(selectionOnFocus); } Then you can set the following properties to the mask: - TextMode="PlainText" - Placeholder=" " - maskedInput:MaskedInputExtensions.CaretToEndOfTextOnFocus="True"
If a user has selected all text in a numeric masked input control with a decimal (eg. 12.34), if they start typing a new value with a period (eg user types .89), the integer potion of the decimal does not change (so the input control now displays 12.89 instead of 0.89). Please provide a way to clear out what's to the left of the decimal when users type the period, as this is much more inline with the expected behavior of pretty much any other input control. The user has selected all the text and started typing. There's no excuse for not clearing out all the text in the input control in this scenario. Our clients are rightfully frustrated with this behavior.
In NoMask scenario the Placeholder should not be a valid property. The issue: if the Placeholder is an underscore (default value) and the user's input underscore this character is not displayed on lost focus. Workarounds: 1. Set empty string for Placeholder (Placeholder="") 2. Set TextMode property to MaskedText (TextMode="MaskedText")
When two or more MaskInput controls are focused at the same time, the application freezes. Workaround: Instead of txtMask1.Focus(); txtMask2.Focus(); Use txtMask1.Focus(); Dispatcher.BeginInvoke(new Action(() => { txtMask2.Focus(); }), DispatcherPriority.Loaded);
The Value property of the TextInput is not correctly updated when using the On-Screen Touch keyboard when using no mask (Mask=""). We managed to reproduce the issue on Windows 8.1, 10. The behavior is different in both Windows OS. To get the Touch Keyboard you can check the following link. Windows OS 8.1 - When you enter text and pressed backspace key- the value property is not updated the first time. Windows OS 10 - When you enter text and pressed backspace key the value property is updated correctly. But if you HOLD THE BACKSPACE KEY the Value property ignored this behavior.