Primary WinForms APIs:
TextBox, MaskedTextBoxComboBox (DropDownStyle, autocomplete modes)NumericUpDownPrimary Avalonia APIs:
TextBox, MaskedTextBoxComboBox, AutoCompleteBoxNumericUpDown| WinForms | Avalonia |
|---|---|
TextBox |
TextBox |
MaskedTextBox |
MaskedTextBox (Mask, prompt/mask properties) |
ComboBox + autocomplete |
ComboBox or AutoCompleteBox |
NumericUpDown |
NumericUpDown |
WinForms C#:
var phone = new MaskedTextBox("(999) 000-0000");
phone.Text = customer.Phone;
var role = new ComboBox
{
DropDownStyle = ComboBoxStyle.DropDownList,
DataSource = roles
};
var priority = new NumericUpDown
{
Minimum = 0,
Maximum = 10,
Increment = 1,
Value = 3
};
Avalonia XAML:
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:MyApp.ViewModels"
x:DataType="vm:OrderEditorViewModel">
<Grid RowDefinitions="Auto,Auto,Auto,Auto" RowSpacing="8">
<TextBox Grid.Row="0"
Watermark="Customer name"
Text="{CompiledBinding CustomerName, Mode=TwoWay}" />
<MaskedTextBox Grid.Row="1"
Mask="(000) 000-0000"
Text="{CompiledBinding Phone, Mode=TwoWay}" />
<AutoCompleteBox Grid.Row="2"
ItemsSource="{CompiledBinding CountrySuggestions}"
MinimumPrefixLength="1"
IsTextCompletionEnabled="True"
Text="{CompiledBinding Country, Mode=TwoWay}" />
<NumericUpDown Grid.Row="3"
Minimum="0"
Maximum="10"
Increment="1"
Value="{CompiledBinding Priority, Mode=TwoWay}" />
</Grid>
</UserControl>
using Avalonia.Controls;
var phone = new MaskedTextBox
{
Mask = "(000) 000-0000",
Text = viewModel.Phone
};
var country = new AutoCompleteBox
{
ItemsSource = viewModel.CountrySuggestions,
MinimumPrefixLength = 1,
IsTextCompletionEnabled = true,
Text = viewModel.Country
};
var priority = new NumericUpDown
{
Minimum = 0,
Maximum = 10,
Increment = 1,
Value = viewModel.Priority
};
Mask, AsciiOnly, and prompt/reset settings on MaskedTextBox.AutoCompleteBox when free typing + suggestion filtering is required.Value in TwoWay mode and keep model type compatible with decimal values.