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: 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;
        }
    }
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;
        }
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: 05 Jan 2017 07:59 by ADMIN
ADMIN
Created by: Telerik Admin
Comments: 0
Category: MaskedInput
Type: Bug Report
1
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.
Declined
Last Updated: 11 Aug 2016 14:04 by ADMIN
InputLanguageManager does not work in MaskedInputControls
====

Reason for deletion: The bug is logged for RadMaskedTextBox and it will be removed from our suite from Q2 2014.
Unplanned
Last Updated: 08 Dec 2016 09:41 by ADMIN
In MaskedTextInput the ClearButton will make the Value "" but it should make it NULL. All other InputControls have null value after pressing ClearButton.

No-masked TextInput works fine - the ClearButton makes the Value Null.

As a workaround, you can use the ClearCommand, bind it to Command from your ViewModel and the execute handler can set the bound Value to null.
Completed
Last Updated: 28 Aug 2014 13:27 by ADMIN
ADMIN
Created by: Petar Mladenov
Comments: 0
Category: MaskedInput
Type: Bug Report
1
MaskedNumericInput with Mask = #6.3. When there is no digit grouping (you can turn it off from  the region / format settings in windows, no digit grouping means no symbol for grouping) the control produces Exception on load.
Completed
Last Updated: 05 Nov 2014 09:38 by ADMIN
Part of the Value or the whole value is selected in no-masked NumericInput.

Pasting a copied text is not successful. For example 4 is the value and 4 is selected. Pasting "123" produces "1" but it should produce "123".
Declined
Last Updated: 03 Nov 2014 14:56 by Vadimir
Created by: Vadimir
Comments: 0
Category: MaskedInput
Type: Feature Request
1
I think it would be great to have a IsMultilineAllowed property for this control, as AcceptsReturn property is only designed to ignore the return key entered by the user.

Here is my post in the forum:
http://www.telerik.com/forums/paste-multi-line-text-when-acceptsreturn-set-to-false
========
Reason for Decline: The desired request is custom logic that could be implemented by inheriting the RadMaskedInput control and overriding HandlePaste.
Unplanned
Last Updated: 27 Dec 2016 13:44 by ADMIN
Mask is "a-a". Value is set to "M-M".

The MaskedTextInput control must internally coerce the Value to "MM".
Instead , MaskedTextInput'Value is "M-" which is wrong.

Other example of the same issue:
Bound Value is bbaabbaabbdd, Mask is "aa-aa-aa-aa-aa-aa"
The result is - value becomes bbbbbbddaaaa.

Workaround:
Use custom Mask Token (check help article: http://docs.telerik.com/devtools/wpf/controls/radmaskedinput/how-to/howto-create-custom-token.html)

 public class CustomToken : ITokenValidationRule
    {
        public bool IsRequired
        {
            get { return false; }
        }

        public bool IsValid(char ch)
        {
            return ValidChars.Contains(ch.ToString());
        }

        public char Token
        {
            get { return '$'; }
        }

        public TokenTypes Type
        {
            get { return TokenTypes.AlphaNumeric; }
        }

        private string myValidChars = "0123456789qwertyuioplkjhgfdsazxcvbnm";
        public string ValidChars
        {
            get { return myValidChars; }
        }
    }

    TokenLocator.AddCustomValidationRule(new CustomToken());
            InitializeComponent();

   <telerik:RadMaskedTextInput Mask="$-$"  
Completed
Last Updated: 05 Jan 2015 13:44 by ADMIN
Pasting text in TextInput with No-Mans and UpdateValueEvent=LostFocus is not successful.

This operation clears the whole Value.

 <telerik:RadMaskedTextInput Mask="" UpdateValueEvent="LostFocus"/>

Available in LIB version: 2014.3.1305
Unplanned
Last Updated: 28 Dec 2016 13:57 by ADMIN
The Mask property of the RadMaskedDateTimeInput cannot be set or changed via binding. Internally it is always set to "d".
Completed
Last Updated: 09 Oct 2017 12:09 by ADMIN
Fix available in LIB Version 2017.3.1009.
Completed
Last Updated: 22 Dec 2015 11:48 by ADMIN
RadGridView with CellEditTemplate with RadMaskedDateTimeInput.

Select a GridViewRow. Press ALT  + N Key (or other key with letter/digit).

Argument Exception occurs in MaskedDateTimeGridViewEditor.



The issue is reproducible in Q3 2015 SP (1104) version of Telerik UI for WPF.
The fix will be available in Q1 2016 Release.
Completed
Last Updated: 01 Apr 2016 14:08 by ADMIN
Mask="" (no-mask) and FormatStyring =n3 or n4 , n5.

Value is 0.

Typing 0 then ".", then 0, then 0, then 5 produces 0.5000 but it should produce 0.0050.

Fix available in LIB Version 2016.1.404.
Completed
Last Updated: 14 Jun 2016 07:52 by ADMIN
You have the following scenario.
The UpdateValueEvent property is set to "LostFocus" and set no mask ( Mask= "").

When the input box is focused, press the minus sign key. You can see the that the minus is showing as expected. 

Then press a number and the "-" (minus) disappear. By pressing number key again the minus appears again.

A workaround: 
Setting the UpdateValueEvent property to PropertyChanged


Available in R2 2016 SP
Completed
Last Updated: 09 Sep 2016 11:48 by ADMIN
Possible workaround:
You can subscribe to the PreviewTextInput event of the control and change the position of the caret if the typed char is the same as the current one.

private void RadMaskedTextInput_PreviewTextInput(object sender, TextCompositionEventArgs e)
        {
            var input = sender as RadMaskedTextInput;
            var currentPosition = input.SelectionStart;

            if (currentPosition != input.Text.Length)
            {
                var currentChar = input.Text[currentPosition];

                if (currentChar != input.Placeholder && currentChar.ToString() == e.Text)
                {
                    input.SelectionStart++;
                }
            }
        }



Available in R3 2016 Release
Completed
Last Updated: 09 Mar 2018 06:59 by ADMIN
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;                 
	}
}
Unplanned
Last Updated: 08 Nov 2016 17:02 by ADMIN