Working with MAUI Controls
This tutorial explores common controls available in .NET MAUI (Multi-platform App UI) and how to use them to build engaging user interfaces for your cross-platform applications.
Understanding Core Controls
MAUI provides a rich set of controls that abstract the native UI elements of each platform, ensuring a consistent look and feel while leveraging platform-specific capabilities.
Labels
The Label
control is used to display text. It supports various text formatting options.
XAML Example:
<Label Text="Hello, MAUI!"
FontSize="24"
TextColor="Blue"
HorizontalOptions="Center"
VerticalOptions="Center" />
C# Example:
var myLabel = new Label
{
Text = "Hello, MAUI!",
FontSize = 24,
TextColor = Colors.Blue,
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
};
Buttons
The Button
control is interactive and typically used to trigger an action.
XAML Example:
<Button Text="Click Me"
Clicked="OnButtonClicked"
HorizontalOptions="Center"
VerticalOptions="Center" />
C# Example:
var myButton = new Button
{
Text = "Click Me",
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.Center
};
myButton.Clicked += OnButtonClicked;
You would then define the OnButtonClicked
method in your code-behind file.
Entry and Editor
Entry
is for single-line text input, while Editor
is for multi-line text input.
XAML Example:
<Entry Placeholder="Enter your name"
MaxLength="50"
Keyboard="Default"
HorizontalOptions="Fill" />
<Editor Placeholder="Enter your message"
AutoSize="TextChanges"
HeightRequest="100"
HorizontalOptions="Fill" />
Image
The Image
control displays images. MAUI supports various image sources.
XAML Example:
<Image Source="dotnet_bot.png"
WidthRequest="200"
HeightRequest="200"
HorizontalOptions="Center" />
This assumes dotnet_bot.png
is in your project's Resources/Images folder.
ListView and CollectionView
These controls are used to display collections of data. CollectionView
is more flexible and recommended for modern development.
XAML Example (CollectionView):
<CollectionView ItemsSource="{Binding Items}"
HeightRequest="300"
HorizontalOptions="Fill">
<CollectionView.ItemTemplate>
<DataTemplate>
<Label Text="{Binding .}" Padding="10" />
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
Items
would be a collection (e.g., ObservableCollection<string>
) bound to your ViewModel.
Layout Controls
While this tutorial focuses on content controls, remember that MAUI's layout controls like StackLayout
, Grid
, and FlexLayout
are essential for arranging these controls effectively.
Next Steps
Explore more advanced controls and customization options in the official .NET MAUI documentation. Learn how to use data binding to create dynamic and responsive UIs.