MaskedTextBox
The MaskedTextBox control is an editable text field where a user can input text.
Source code
Basic example line TextBox
<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
        x:Class="AvaloniaAppTemplate.MainWindow"
        Title="AvaloniaAppTemplate">
    <StackPanel Margin="10">
        <MaskedTextBox Mask="(00) 000 - 000 000 00" />
    </StackPanel>
</Window>
produces the following output in Ubuntu
and it behaves like so when filled in by user input
 
Supported Masks
The Mask Property accepts a string as Configuration and it follows the same Mask configuration as WPF masks.
| Masking element | Description | 
|---|---|
| 0 | Digit, required. This element will accept any single digit between 0 and 9. | 
| 9 | Digit or space, optional. | 
| # | Digit or space, optional. If this position is blank in the mask, it will be rendered as a space in the Text property. Plus (+) and minus (-) signs are allowed. | 
| L | Letter, required. Restricts input to the ASCII letters a-z and A-Z | 
| ? | Letter, optional. Restricts input to the ASCII letters a-z and A-Z | 
| & | Character, required. If the AsciiOnly property is set to true, this element behaves like the "L" element. | 
| C | Character, optional. Any non-control character. If the AsciiOnly property is set to true, this element behaves like the "?" element. | 
| A | Alphanumeric, required. If the AsciiOnly property is set to true, the only characters it will accept are the ASCII letters a-z and A-Z. This mask element behaves like the "a" element. | 
| a | Alphanumeric, optional. If the AsciiOnly property is set to true, the only characters it will accept are the ASCII letters a-z and A-Z. This mask element behaves like the "A" element. | 
| . | Decimal placeholder. The actual display character used will be the decimal symbol appropriate to the format provider, as determined by the control's FormatProvider property. | 
| , | Thousands placeholder. The actual display character used will be the thousands placeholder appropriate to the format provider, as determined by the control's FormatProvider property. | 
| : | Time separator. The actual display character used will be the time symbol appropriate to the format provider, as determined by the control's FormatProvider property. | 
| / | Date separator. The actual display character used will be the date symbol appropriate to the format provider, as determined by the control's FormatProvider property. | 
| $ | Currency symbol. The actual character displayed will be the currency symbol appropriate to the format provider, as determined by the control's FormatProvider property. | 
| < | Shift down. Converts all characters that follow to lowercase. | 
| > | Shift up. Converts all characters that follow to uppercase. | 
| | | Disable a previous shift up or shift down. | 
| \ | Escape. Escapes a mask character, turning it into a literal. "\" | 
| All other characters | Literals. All non-mask elements will appear as themselves within MaskedTextBox. Literals always occupy a static position in the mask at run time, and cannot be moved or deleted by the user. |