Unplanned
Last Updated: 27 Dec 2016 14:04 by ADMIN
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);
Completed
Last Updated: 28 Dec 2016 14:15 by ADMIN
The MaskedNumericInput control doesn't escape formatting characters like 'c' or 'n'.
=============
This is not reproducible in R3 2016 version.
Completed
Last Updated: 11 Aug 2016 14:04 by ADMIN
Implement a behavior to allow dymanically changing the FormatString precision specifier
=====
Reason to mark it Completed: Added the "Dynamic Format String" sample in SDK. Will be live with Q2 2014 (mid June)
Completed
Last Updated: 08 Dec 2014 17:44 by ADMIN
MaskedInputExtensions.AllowNull is set to False. 

Select All then Delete makes the Value 0 and the Text is like "______0.00" (contains 0.00) which is expected (this is in Numeric and CurrencyInput). 

Second time SelectAll and then delete makes the Value 0 but the text becomes "________" which is not expected. 

Available in LIB version: 2014.3.1124
Completed
Last Updated: 07 Jul 2016 14:25 by Tim
When setting the CurrencyDecimalSeparator to "," the MaskedCurrencyInput shows ".," (decimal point is not expected).
Similar issues with MaskedNumericInput.
Setting both CurrencyDecimalSeparator and CurrencyGroupSeparator to "." also produces issues.

Possible workaround:
 public class CustomCurrency: RadMaskedCurrencyInput
    {
        protected override void SetSeparators(params Telerik.Windows.Controls.MaskedInput.Separator[] separatorsArray)
        {
            base.SetSeparators(separatorsArray);
            this.Separators.Add(new Separator(this.Culture.NumberFormat.NumberDecimalSeparator, true));
        }
    }

The fix will be available in lib for 11 July 2016.
Completed
Last Updated: 04 Feb 2016 13:14 by ADMIN
Use No-Masked TextInput (Mask=""). Pressing delete will always place the caret on position 0.
Completed
Last Updated: 21 Jul 2014 12:07 by ADMIN
ADMIN
Created by: Petar Mladenov
Comments: 3
Category: MaskedInput
Type: Bug Report
3
RadMaskedTextInput with no-mask => Mask="".

Selecting part of the value then paste works incorrectly. The selected text is not replaced and it is preserved, the copied text is inserted.

It is expected that the selected text is entirely replaced with the copied text.
Declined
Last Updated: 11 Aug 2016 14:04 by Michael
MaskedInput: The cursor of the Mouse is  Caret when it is over the built in ScrollViewer
====
Reason for deletion: The bug is logged for RadMaskedTextBox and it will be removed from our suite from Q2 2014.
Completed
Last Updated: 24 Oct 2016 14:39 by Greg
Bug details:
OS: Windows 10.
VS: 2015 professional
Telerik version: 2015.2 SP1

Code sample:
<Window x:Class="RadMaskedInputBug.MainWindow"
                xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
                Title="MainWindow">
    <Grid>
        <telerik:RadTextTimeInput />
    </Grid>
</Window>


The designer crashes and shows only the exception:
InvalidOperationException: Can only base on a Style with target type that is base type 'RadMaskedTextInput'.

UPDATE: 
Telerik has submitted a bug report to Microsoft. You can check its progress here: https://connect.microsoft.com/VisualStudio/feedback/details/2005303/designer-error-can-only-base-on-a-style-with-target-type-that-is-base-type-customcontrol-when-a-style-is-basedon-a-style-of-an-abstract-class 
On 21/12/2015 Microsoft commented that a fix has been submitted and will be available in the next update.
Unplanned
Last Updated: 15 Sep 2020 12:13 by ADMIN
Created by: Martin Ivanov
Comments: 0
Category: MaskedInput
Type: Feature Request
2
Currently, the SpinMode logic tries to kick-in on MouseWheel, even if the control is not focused. This handles the event which causes unexpected behaviors in some cases. Do not handle the MouseWheel event when the focus is not within the masked input control. You can consider adding a mode that allows you disable the default behavior.
Unplanned
Last Updated: 08 Mar 2017 12:07 by ADMIN
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.
Unplanned
Last Updated: 14 Feb 2018 13:50 by ADMIN
ADMIN
Created by: Pavel R. Pavlov
Comments: 0
Category: MaskedInput
Type: Bug Report
2
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.
Completed
Last Updated: 21 Sep 2018 14:15 by ADMIN
The current workaround is to create a custom control and override the OnTextInput method:

    public class CustomInput : RadMaskedTextInput
    {
        protected override void OnTextInput(TextCompositionEventArgs e)
        {
            base.OnTextInput(e);
            e.Handled = true;
        }
    }
Completed
Last Updated: 11 Aug 2016 14:04 by ADMIN
ADMIN
Created by: Telerik Admin
Comments: 0
Category: MaskedInput
Type: Bug Report
2
We set the AutomationProperties.Name property of a RadMaskedInput control.
This property is not applied in the control (if checked with the UI Spy) the Name automation property is not the set one, but the control's value.
This forces the MS Narrator to read the value of the control instead of the desired one.
Declined
Last Updated: 16 Oct 2020 08:54 by ADMIN
Created by: Dawid
Comments: 4
Category: MaskedInput
Type: Feature Request
2

Add a property to force only allowing uppercase values, without needing to specify a number of characters or have the underline in the control.

 

This is achievable in code, but it seems unnecessary to go to such lengths for each instance where it is needed.

 

private void bankCode_ValueChanging(object sender, Telerik.Windows.Controls.MaskedInput.RadMaskedInputValueChangingEventArgs e)
        {
            if (e.NewValue == null)
                return;

            string newValue = e.NewValue.ToString();
            if (newValue.Length > 0)
            {
                newValue = newValue.ToUpper();
            }
            this.txtBankCode.ValueChanging -= this.bankCode_ValueChanging;
            this.txtBankCode.Value = newValue;
            this.txtBankCode.ValueChanging += this.bankCode_ValueChanging;
        }
Completed
Last Updated: 11 Aug 2016 14:04 by ADMIN
Pasting values in the controls, clears the current value in order to paste the new content
Unplanned
Last Updated: 03 Jan 2017 20:49 by ADMIN
ADMIN
Created by: Telerik Admin
Comments: 0
Category: MaskedInput
Type: Feature Request
2
Initially, when the value is 0, the mask control could look like - $__,___.00 instead of $__,___0.00.
Declined
Last Updated: 11 Aug 2016 14:04 by ADMIN
ADMIN
Created by: Telerik Admin
Comments: 0
Category: MaskedInput
Type: Bug Report
2
Improve the FlowDirection functionality - at the moment setting the flow direction to RightToLeft, partly inverts the Mask value thus messing it up.

We are closing this issue as we do not think this is a bug. MaskedInput's Value , Mask and Text properties are not dependent on the FlowDirection property.
The issue the bug is originally logged to is easy to reproduce with TextBox only.
 <TextBox Text="10-Jul-2015" FlowDirection="RightToLeft" /> will produce the string "Jul-2015-10" but not the reversed string of "10-kul-2015". This is how is awpf framework implementation.
Completed
Last Updated: 10 Oct 2018 10:39 by ADMIN
This leads to a wrong value displayed in the masked input. The mask is always coerced to "hh:mm:ss.ff". An additional, 'f' is added to the mask. Probably, this will happen also if you have a single letter on another position in the mask.

To work this around you can create a custom masked input control and override its CoerceTextOverride() method. There you can implement some logic that replaces the wrong milliseconds text. Here is an example in code:

public class CustomMaskedDateTimeInput : RadMaskedDateTimeInput
{
	protected override string CoerceTextOverride(ref int selectionStart)
	{
		var text = base.CoerceTextOverride(ref selectionStart);
		if (this.Value.HasValue && 
			this.Mask != null && 
			this.Mask.Contains("hh:mm:ss.f"))
		{
			
			int millisecondsAllowedLength = GetAllowedMillisecondsLength(this.Mask); // example: .ff means that there are 2 allowed millisecond chars
			int millisecondsMaxLength = 3; // max = 999

			var milliseconds = this.Value.Value.Millisecond.ToString(); // the original milliseconds give from the value
			var zeroesCount = millisecondsMaxLength - milliseconds.Length; // how many zeroes should be append before the millseconds string value

			milliseconds = new string('0', zeroesCount) + milliseconds; // append the zeroes

			// apply the milliseconds restriction given by the Mask (.ff - two symbols)
			if (milliseconds.Length > millisecondsAllowedLength)
			{
				int charsToRemoveCount = milliseconds.Length - millisecondsAllowedLength;
				for (int i = 0; i < charsToRemoveCount; i++)
				{
					milliseconds = milliseconds.Remove(milliseconds.Length - 1, 1);
				}
			}                

			// replace the default parsed millseconds part of the string with the custom milliseconds
			var millisecondsIndex = text.LastIndexOf(".") + 1;
			text = text.Remove(millisecondsIndex, millisecondsMaxLength - millisecondsAllowedLength);
			text = text.Insert(millisecondsIndex, milliseconds);
		}

		return text;
	}

	private int GetAllowedMillisecondsLength(string mask)
	{
		int length = 0;
		var millisecondsIndex = mask.LastIndexOf(".") + 1;
		if (millisecondsIndex != -1)
		{
			length = mask.Length - millisecondsIndex;
		}            
		return length;
	}
}
Completed
Last Updated: 10 Oct 2018 10:40 by ADMIN
For example, the Mask "hh:mm:ss.ff" will render the value properly. But if you change the value at runtime (by pressing a key on the keyboard), the milliseconds will be re-parsed and will be displayed wrongly. 

For example, if you have the value "12:13:14.50" and you go to the ".50" part (between the decimal separator and the number 5). And then press 3, the milliseconds will change to ".03".

To work this around you can create a custom masked input control and override its CoerceTextOverride() method. There you can implement some logic that replaces the wrong milliseconds text. Here is an example in code:

public class CustomMaskedDateTimeInput : RadMaskedDateTimeInput
{
	protected override string CoerceTextOverride(ref int selectionStart)
	{
		var text = base.CoerceTextOverride(ref selectionStart);
		if (this.Value.HasValue && 
			this.Mask != null && 
			this.Mask.Contains("hh:mm:ss.f"))
		{
			
			int millisecondsAllowedLength = GetAllowedMillisecondsLength(this.Mask); // example: .ff means that there are 2 allowed millisecond chars
			int millisecondsMaxLength = 3; // max = 999

			var milliseconds = this.Value.Value.Millisecond.ToString(); // the original milliseconds give from the value
			var zeroesCount = millisecondsMaxLength - milliseconds.Length; // how many zeroes should be append before the millseconds string value

			milliseconds = new string('0', zeroesCount) + milliseconds; // append the zeroes

			// apply the milliseconds restriction given by the Mask (.ff - two symbols)
			if (milliseconds.Length > millisecondsAllowedLength)
			{
				int charsToRemoveCount = milliseconds.Length - millisecondsAllowedLength;
				for (int i = 0; i < charsToRemoveCount; i++)
				{
					milliseconds = milliseconds.Remove(milliseconds.Length - 1, 1);
				}
			}                

			// replace the default parsed millseconds part of the string with the custom milliseconds
			var millisecondsIndex = text.LastIndexOf(".") + 1;
			text = text.Remove(millisecondsIndex, millisecondsMaxLength - millisecondsAllowedLength);
			text = text.Insert(millisecondsIndex, milliseconds);
		}

		return text;
	}

	private int GetAllowedMillisecondsLength(string mask)
	{
		int length = 0;
		var millisecondsIndex = mask.LastIndexOf(".") + 1;
		if (millisecondsIndex != -1)
		{
			length = mask.Length - millisecondsIndex;
		}            
		return length;
	}
}