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 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.
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); } }
Having a Value of type 550.123, then selecting "55" and changing it to 7 produces 7.123 instead of 70.123. Possible workaround is using no-mask (Mask="") and FormatString.
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); } }
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 MaskedTextInput Value is bound to a property whose value is modified in its setter. In this case the Value of the control isn't updated to the modified value of the business property. Also if Binding Converter changes the Value, it is not updated too. Other maskedInput controls - Numeric, Currency work in such scenarios.
We have MaskedTextInput with InputBehavior set to Replace. When we select part of the value or the whole value and then insert a symbol, only the first selected symbol is replaced but not the whole selected text.
When the Value of the RadMaskedInput (all RadMaskedInput controls) is changed in code behind, the ValueChanged event isn't fired.
SelectAll then Shift + Del makes the need of twice (Ctrl + Z) for successful undo operation.
The Mask property of the RadMaskedDateTimeInput cannot be set or changed via binding. Internally it is always set to "d".
Use the new implict mechanism. Attach the Windows8 _Wpf project instead of Windows8 dll. Xaml parse exception occurs runtime - "Cannot set unknown member 'Telerik.Windows.Controls.MaskedInput.PreviewInputTextBox.IsReadOnly'." Note: you can try the workaround added here: http://stackoverflow.com/questions/6850713/weird-xaml-parsing-error-when-trying-to-set-textbox-isreadonly
When you set the IsCurrencySymbolVisible to false and Mask="1.x" you are not able to fill the first digit. For example if you want to insert 1.234 and you press 1 the control fills 0.001 and all other digits can be added at the last position only.