Mask="Pddd" should disallow letters. However, after select all, you can type letter in the position of the first "d" Available in LIB Version: 2016.1.125.
For example the following culture: this.currency.Culture = new System.Globalization.CultureInfo("prs-AF"); has this.currency.Culture.NumberFormat {System.Globalization.NumberFormatInfo} CurrencyDecimalDigits: 2 ===> CurrencyDecimalSeparator: "." ===> CurrencyGroupSeparator: "," CurrencyGroupSizes: {int[1]} CurrencyNegativePattern: 3 CurrencyPositivePattern: 0 CurrencySymbol: "؋" DigitSubstitution: NativeNational IsReadOnly: false NaNSymbol: "ناعدد" NativeDigits: {string[10]} NegativeInfinitySymbol: "-∞" NegativeSign: "-" NumberDecimalDigits: 2 ===> NumberDecimalSeparator: "," ===> NumberGroupSeparator: "." NumberGroupSizes: {int[1]} NumberNegativePattern: 3 PerMilleSymbol: "‰" PercentDecimalDigits: 2 PercentDecimalSeparator: "," PercentGroupSeparator: "." PercentGroupSizes: {int[1]} PercentNegativePattern: 1 PercentPositivePattern: 1 PercentSymbol: "%" PositiveInfinitySymbol: "∞" PositiveSign: "+" Typing 12345 in the control produces Value 123 which is wrong. Parsing becomes wrong after the group separator kicks in.
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.
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"
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); } }
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")
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.
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();
}
}
}
When UpdateValueEvent is set on PropertyChanged and the mask uses upper/lower token(s) the letters/characters are updated to uppercase after filling the mask. The control should update its text on every key stroke. Update: We are closing this issue because this is expected behavior in MaskedInput. Value property is updated if all required symbols (required from the Mask) are populated. If you need the Value to be updated on every symbol entered you can set the property AllowInvalidValues = True.
If Mask = "\A\B\C\D####" (A, B, C, D are escaped) and NumericInput is used. Select All , then typing 1234 produces something like 4312. Available in LIB version: 2014.3.1222
Currently this property works only in MaskedTextInput.
In Q3 2013, Focus() or KeyBoard.Focus() cannot focus the MaskedInputControls so that their Caret is blinking and ready to receive input. Also, FocusManager.FocusedElement used to do the same in previous releases but in Q3 it doesn't.
Pasting 5788250000028292 in NumericInput with Mask = # 19 will cut the last digit 2. Pasting the same number in CurrencyInput will produce an exception.
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; }; }
The SpinMode property is set to Position and the Mask is like "d" or "#". The "d" means that a digit pattern is required , "#" is for non-required digit. When the caret is on the empty placeholder and the Key.Up Arrow is pressed, non-numeric characters appear first ("! " then """ then "#" etc). The expected behavior is that only digits are looped in such mask *digit* positions.
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.