Support development of .NET MAUI cross-platform apps with controls, XAML, handlers, and performance best practices.
npx claude-code-templates@latest --skill ••••••••••••••••••••Unlock this skill to run and inspect the interactive installation sequence.
You are an expert .NET MAUI developer specializing in high-quality, performant, and maintainable cross-platform applications with particular expertise in .NET MAUI controls.
Background property| Control | Purpose | Key Properties |
|---|---|---|
| ActivityIndicator | Indeterminate busy state | IsRunning, Color |
| ProgressBar | Known progress (0.0-1.0) | Progress, ProgressColor |
| Control | Purpose | Notes |
|---|---|---|
| Border | Container with border | Prefer over Frame |
| ContentView | Reusable custom controls | Encapsulates UI components |
| ScrollView | Scrollable content | Single child; never in StackLayout |
| Frame | Legacy container | Only for shadows |
BoxView, Ellipse, Line, Path, Polygon, Polyline, Rectangle, RoundRectangle - all support Fill, Stroke, StrokeThickness.
| Control | Purpose |
|---|---|
| Button/ImageButton | Clickable actions |
| CheckBox/Switch | Boolean selection |
| RadioButton | Mutually exclusive options |
| Entry | Single-line text |
| Editor | Multi-line text (AutoSize="TextChanges") |
| Picker | Drop-down selection |
| DatePicker/TimePicker | Date/time selection |
| Slider/Stepper | Numeric value selection |
| SearchBar | Search input with icon |
| Control | When to Use |
|---|---|
| CollectionView | Lists >20 items (virtualized); never in StackLayout |
| BindableLayout | Small lists ≤20 items (no virtualization) |
| CarouselView + IndicatorView | Galleries, onboarding, image sliders |
<!-- DO: Use Grid for complex layouts --> <Grid RowDefinitions="Auto,*" ColumnDefinitions="*,*"> <!-- DO: Use Border instead of Frame --> <Border Stroke="Black" StrokeThickness="1" StrokeShape="RoundRectangle 10"> <!-- DO: Use specific stack layouts --> <VerticalStackLayout> <!-- Not <StackLayout Orientation="Vertical"> -->
<!-- Always use x:DataType for 8-20x performance improvement -->
<ContentPage x:DataType="vm:MainViewModel">
<Label Text="{Binding Name}" />
</ContentPage>// DO: Expression-based bindings (type-safe, compiled) label.SetBinding(Label.TextProperty, static (PersonViewModel vm) => vm.FullName?.FirstName); // DON'T: String-based bindings (runtime errors, no IntelliSense) label.SetBinding(Label.TextProperty, "FullName.FirstName");
OneTime - data won't changeOneWay - default, read-onlyTwoWay - only when needed (editable)// In MauiProgram.cs ConfigureMauiHandlers
Microsoft.Maui.Handlers.ButtonHandler.Mapper.AppendToMapping("Custom", (handler, view) =>
{
#if ANDROID
handler.PlatformView.SetBackgroundColor(Android.Graphics.Color.HotPink);
#elif IOS
handler.PlatformView.BackgroundColor = UIKit.UIColor.SystemPink;
#endif
});Routing.RegisterRoute("details", typeof(DetailPage));
await Shell.Current.GoToAsync("details?id=123");MainPage once at startup#if ANDROID #elif IOS #elif WINDOWS #elif MACCATALYST #endif
BindableObject.Dispatcher or inject IDispatcher via DI for UI updates from background threads; use MainThread.BeginInvokeOnMainThread() as a fallbackx:DataType)await SecureStorage.SetAsync("oauth_token", token);
string token = await SecureStorage.GetAsync("oauth_token");Resources/Images/ - images (PNG, JPG, SVG→PNG)Resources/Fonts/ - custom fontsResources/Raw/ - raw assets<Image Source="logo.png" /> (not .svg)InputTransparent = true)# Step 1: Initialize skill agent setup
npx skills add Dotnet Maui --install-production
python -m pip install -r requirements.txt
codex plugin install Dotnet Maui@latest
export API_KEY=secret_token_key_here
Unlock this skill to reveal complete step-by-step setup guides, terminal commands, configuration recipes, repository links, and interactive installation video walkthroughs.
Get instant access to complete setup guides, repository source code, and integration assets.
The definitive suite of 39 production grade agent skills by Matt Pocock for real software engineering, domain modeling, rigorous alignment grilling, TDD, and deep module architecture.
Use when building complete frontend applications across React, Vue, and Angular frameworks requiring multi-framework expertise and full-stack integration.
Prompt as Code: Industrial GPT-Image 2 and 2.5 prompt engine and style template library with 530 reverse-engineered cases, 20 production templates, and automated Agent Skills.