RadMaskedInput with NO-MASK (Mask="") and percentage P0 formatstring has some issues with typing digits. After clearing the value and typing digit, caret moves after the percentage sign and editing is not possible.
MaskedTextInput with Mask="(###)-###-####" and EmptyContent="Type digits" , type a single digit, for example 6 in the control. Value becomes 6 and Text becomes '(6__)-___-____'. Mask is changed runtime to empty string (runtime) and the focus is out of the MaskedInput the control. Value continues to be 6 but Text becomes '6' according to the new MASK. EmptyContent string is shown, although Text is 6. Expected: Text is shown in the control '6'. Same issue in NumericInput and CurrencyInput. ======================================= ======================================= The following workaround could be considered. public class CustomTextInput : RadMaskedTextInput { protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e) { if (e.Property.Name == "Mask") { if (e.NewValue.ToString() == string.Empty) { this.LiteralPositions.Clear(); } } base.OnPropertyChanged(e); } }
Currently the MaskedInput controls cannot handle properly Chinese input symbols from Google Pinyin or MS IME. MaskedInput's code relies on methods from TextBox which do not fire when the input is not from keyboard.
Add built in masks for Email, IP, Phone, etc. Add design time support for this.
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); } }
A possible workaround is to subscribe to the PreviewKeyDown event of the mask then check if the back key is pressed and the whole text is select and set the value to null in order to erase the text of the mask. private void maskTextInput_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Back && this.maskTextInput.SelectionLength == this.maskTextInput.Text.Length) { this.maskTextInput.Value = null; } }
Mask is like "##--##". Current Value is "1234" and you see "12--34" Caret is between 2 and "-". Pressing 3 wiill not move the caret after the digit 3. InputBehavior is set to "Replace"
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; }; }
If there is a whitespace in the Mask of the control and you try to paste a value containing whitespace, the control will trim the user input. Example: Mask="(###) ###-#### User Input: 1234567890 The MaskedText should be: (123) 456-7890 If you copy this input and try to paste it into a control with the same Mask you will get (123) 45-6789 which is not correct. Possible workarounds !!! 1. In a scenario when the user will enter only digits in the MaskedTextInput for a phone number is to restrict the input by setting the following mask. <telerik:RadMaskedTextInput EmptyContent="Enter digits" Mask="(d3) d3-d4" /> 2. The second workaround is to use non breaking space in Mask, this way there won't be a match between space by the user and space in the mask symbols.
When the layout of the keyboard is AZERTY the minus key is not working as expected. Available in LIB version 2017.3.1113, it will be also available in the R1 2018 Release.
When we use context menu of the control to paste text and the mask is not focused an ArgumentOutOfRangeException is thrown.
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.
Fix available in LIB Version 2017.3.1009.
Old Name was. "Implement a feature to change the Value property based on the Text property ". However, Value is the primary property for this control and that is why we want clients to use Value property, not two-way binding of the Text property that changes the Value internally. That is why we changed the name of the feature request. Its meaningful and clients will benefit from it. Basically clients want the literals to be included in in the VALUE. And this is meaningful only in TextInput. So new property in RadMaskedTextInput (for ex. IncludeLiteralsInValue) seems fine - Estimate 10. Example Scenario: Mask="##--##--##", User types 123456, Value property becomes "12--34--56" which will have the same value as the Text property. Example Scenario: IP Address SDK demo. Look at its code - there is converter in file and convert methods in ViewModel.cs. Both Value and Text are bound. If Value includes the dots, only 1 converter and 1 2way bingding would do the job with less code.
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); } }