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: 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: 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)
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: 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.
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: 27 Dec 2016 11:56 by ADMIN
Change the x:Key of the PreviewInputTextBox style in all themes definitions as at the moment it matches the x:Key of the TextBox style in the System.Windows.xaml.

This is completed in R2  / R3 2013.
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.
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.
Unplanned
Last Updated: 27 Dec 2016 13:54 by ADMIN
ADMIN
Created by: Petar Mladenov
Comments: 0
Category: MaskedInput
Type: Bug Report
2
When using implicit styles mechanism and you merge Telerik.Windows.Controls.Input an exception is thrown.

If the XAML file is set with BUILD ACTION PAGE the issue is not reproducible.

Another workaround is to reference dlls only, not xaml theme files.

Issue is reported in several msdn / stackoverflow threads and it appears to be an MS-TextBox one. 
http://stackoverflow.com/questions/6850713/weird-xaml-parsing-error-when-trying-to-set-textbox-isreadonly 
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: 28 Dec 2016 14:01 by ADMIN
When the Value of the RadMaskedInput (all RadMaskedInput controls) is changed in code behind, the ValueChanged event isn't fired.
Completed
Last Updated: 20 Jan 2020 11:31 by ADMIN
Release R1 2020
ADMIN
Created by: Dinko | Tech Support Engineer
Comments: 1
Category: MaskedInput
Type: Bug Report
2
In order to reproduce,  you need to focus the control when you run the application.

1.When you press the backspace key it removes the last character and after pressing it a second time the character will be replaced with the removed character.

2. When paste(Ctrl+V) a text in the control, the text is ignoring the current position of the caret and position at the beginning of the control.
Unplanned
Last Updated: 25 Nov 2016 15:59 by ADMIN
Setting the Extnesions Minimum and Maximum values restricts the input of values that fall in the designated area but that start with a digit lesser than the minimum value. For example in the MaskedNumeric/CurrencyInput, if you set MaskedInputExtensions.Minimum="2" and MaskedInputExtensions.Maximum="20", you can't enter 12 unless the current value is 2 and the cursor is positioned before the 2 - only then you can insert the digit 1 before the digit 2 to create an input of 12.
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.
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.
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;
	}
}
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;
	}
}