Add ShellDemo sample with comprehensive XAML controls showcase

Complete ShellDemo application demonstrating all MAUI controls:
- App/AppShell: Shell navigation with flyout menu
- HomePage: Feature cards, theme toggle, quick actions
- ButtonsPage: Button styles, states, variations, event logging
- TextInputPage: Entry, Editor, SearchBar with keyboard shortcuts
- SelectionPage: CheckBox, Switch, Slider with colored variants
- PickersPage: Picker, DatePicker, TimePicker demos
- ListsPage: CollectionView with fruits, colors, contacts
- ProgressPage: ProgressBar, ActivityIndicator, interactive demo
- GridsPage: Grid layouts - auto/star/absolute sizing, spans, nesting
- AboutPage: OpenMaui Linux information
- DetailPage: Push/pop navigation demo

All pages use proper XAML with code-behind following MAUI patterns.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-01 20:02:24 -05:00
parent 18ab0abe97
commit 01270c6938
27 changed files with 2152 additions and 0 deletions

View File

@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="ShellDemo.Pages.TextInputPage"
Title="Text Input"
BackgroundColor="{StaticResource PageBackground}">
<ScrollView>
<VerticalStackLayout Padding="20" Spacing="15">
<Label Text="Text Input Controls"
FontSize="24"
FontAttributes="Bold" />
<Label Text="Click on any field and start typing. All keyboard input is handled by the framework."
FontSize="14"
TextColor="{StaticResource TextSecondary}" />
<!-- Entry Section -->
<BoxView HeightRequest="1" Color="#E0E0E0" />
<Label Text="Entry (Single Line)" FontSize="18" FontAttributes="Bold" />
<Entry x:Name="NameEntry"
Placeholder="Enter your name..."
FontSize="14"
TextChanged="OnNameEntryTextChanged" />
<Label x:Name="EntryOutput"
FontSize="12"
TextColor="{StaticResource TextSecondary}" />
<Entry Placeholder="Enter your email..."
FontSize="14"
Keyboard="Email" />
<Label Text="Email keyboard type"
FontSize="12"
TextColor="{StaticResource TextSecondary}" />
<Entry Placeholder="Enter password..."
FontSize="14"
IsPassword="True" />
<Label Text="Password field (text hidden)"
FontSize="12"
TextColor="{StaticResource TextSecondary}" />
<!-- SearchBar Section -->
<BoxView HeightRequest="1" Color="#E0E0E0" />
<Label Text="SearchBar" FontSize="18" FontAttributes="Bold" />
<SearchBar x:Name="DemoSearchBar"
Placeholder="Search for items..."
TextChanged="OnSearchTextChanged"
SearchButtonPressed="OnSearchButtonPressed" />
<Label x:Name="SearchOutput"
FontSize="12"
TextColor="{StaticResource TextSecondary}" />
<!-- Editor Section -->
<BoxView HeightRequest="1" Color="#E0E0E0" />
<Label Text="Editor (Multi-line)" FontSize="18" FontAttributes="Bold" />
<Editor x:Name="DemoEditor"
Placeholder="Enter multiple lines of text here...&#10;Press Enter to create new lines."
HeightRequest="120"
FontSize="14"
TextChanged="OnEditorTextChanged" />
<Label x:Name="EditorOutput"
FontSize="12"
TextColor="{StaticResource TextSecondary}" />
<!-- Keyboard Shortcuts Info -->
<BoxView HeightRequest="1" Color="#E0E0E0" />
<Border BackgroundColor="#E3F2FD"
Padding="15"
StrokeThickness="0">
<Border.StrokeShape>
<RoundRectangle CornerRadius="8" />
</Border.StrokeShape>
<VerticalStackLayout Spacing="5">
<Label Text="Keyboard Shortcuts" FontAttributes="Bold" />
<Label Text="Ctrl+A: Select all" />
<Label Text="Ctrl+C: Copy" />
<Label Text="Ctrl+V: Paste" />
<Label Text="Ctrl+X: Cut" />
<Label Text="Home/End: Move to start/end" />
<Label Text="Shift+Arrow: Select text" />
</VerticalStackLayout>
</Border>
</VerticalStackLayout>
</ScrollView>
</ContentPage>