|
| 1 | +<?xml version="1.0" encoding="utf-8" ?> |
| 2 | +<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" |
| 3 | + xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" |
| 4 | + xmlns:aurora="http://auroracontrols.maui/controls" |
| 5 | + x:Class="AuroraControls.TestApp.ConfettiViewTestPage" |
| 6 | + Title="ConfettiView Test Page"> |
| 7 | + <ScrollView> |
| 8 | + <VerticalStackLayout Spacing="15" Padding="20"> |
| 9 | + <Label Text="ConfettiView Test Page" |
| 10 | + FontSize="Title" |
| 11 | + FontAttributes="Bold" |
| 12 | + HorizontalOptions="Center" /> |
| 13 | + |
| 14 | + <!-- Confetti Display Area --> |
| 15 | + <Frame BorderColor="Gray" Padding="0" HeightRequest="300" Margin="0,10,0,0"> |
| 16 | + <aurora:ConfettiView x:Name="ConfettiView" |
| 17 | + MaxParticles="250" |
| 18 | + ConfettiShape="Rectangular" |
| 19 | + Continuous="False" |
| 20 | + BackgroundColor="LightBlue" /> |
| 21 | + </Frame> |
| 22 | + |
| 23 | + <!-- Controls Section --> |
| 24 | + <Frame BorderColor="Gray" Padding="15" Margin="0,10,0,0"> |
| 25 | + <VerticalStackLayout Spacing="15"> |
| 26 | + <Label Text="Controls" FontSize="Subtitle" FontAttributes="Bold"/> |
| 27 | + |
| 28 | + <!-- Start/Stop Buttons --> |
| 29 | + <Grid ColumnDefinitions="*, *" ColumnSpacing="10"> |
| 30 | + <Button Grid.Column="0" |
| 31 | + Text="Start Confetti" |
| 32 | + BackgroundColor="Green" |
| 33 | + TextColor="White" |
| 34 | + Clicked="OnStartClicked" /> |
| 35 | + <Button Grid.Column="1" |
| 36 | + Text="Stop Confetti" |
| 37 | + BackgroundColor="Red" |
| 38 | + TextColor="White" |
| 39 | + Clicked="OnStopClicked" /> |
| 40 | + </Grid> |
| 41 | + |
| 42 | + <!-- Max Particles Control --> |
| 43 | + <VerticalStackLayout Spacing="5"> |
| 44 | + <Label Text="{Binding Source={x:Reference MaxParticlesSlider}, Path=Value, StringFormat='Max Particles: {0:F0}'}" /> |
| 45 | + <Slider x:Name="MaxParticlesSlider" |
| 46 | + Minimum="50" |
| 47 | + Maximum="500" |
| 48 | + Value="250" |
| 49 | + ValueChanged="OnMaxParticlesChanged" /> |
| 50 | + </VerticalStackLayout> |
| 51 | + |
| 52 | + <!-- Particle Size Control --> |
| 53 | + <VerticalStackLayout Spacing="5"> |
| 54 | + <Label Text="{Binding Source={x:Reference ParticleSizeSlider}, Path=Value, StringFormat='Particle Size: {0:F1}'}" /> |
| 55 | + <Slider x:Name="ParticleSizeSlider" |
| 56 | + Minimum="2" |
| 57 | + Maximum="15" |
| 58 | + Value="6" |
| 59 | + ValueChanged="OnParticleSizeChanged" /> |
| 60 | + </VerticalStackLayout> |
| 61 | + |
| 62 | + <!-- Gravity Control --> |
| 63 | + <VerticalStackLayout Spacing="5"> |
| 64 | + <Label Text="{Binding Source={x:Reference GravitySlider}, Path=Value, StringFormat='Gravity: {0:F2}'}" /> |
| 65 | + <Slider x:Name="GravitySlider" |
| 66 | + Minimum="0.01" |
| 67 | + Maximum="0.3" |
| 68 | + Value="0.08" |
| 69 | + ValueChanged="OnGravityChanged" /> |
| 70 | + </VerticalStackLayout> |
| 71 | + |
| 72 | + <!-- Wind Intensity Control --> |
| 73 | + <VerticalStackLayout Spacing="5"> |
| 74 | + <Label Text="{Binding Source={x:Reference WindIntensitySlider}, Path=Value, StringFormat='Wind Intensity: {0:F1}'}" /> |
| 75 | + <Slider x:Name="WindIntensitySlider" |
| 76 | + Minimum="0" |
| 77 | + Maximum="2" |
| 78 | + Value="0.3" |
| 79 | + ValueChanged="OnWindIntensityChanged" /> |
| 80 | + </VerticalStackLayout> |
| 81 | + |
| 82 | + <!-- Shape Selection --> |
| 83 | + <VerticalStackLayout Spacing="5"> |
| 84 | + <Label Text="Confetti Shape:" /> |
| 85 | + <Grid ColumnDefinitions="*, *" ColumnSpacing="10"> |
| 86 | + <Button Grid.Column="0" |
| 87 | + x:Name="RectangularButton" |
| 88 | + Text="Rectangular" |
| 89 | + BackgroundColor="Blue" |
| 90 | + TextColor="White" |
| 91 | + Clicked="OnShapeChanged" /> |
| 92 | + <Button Grid.Column="1" |
| 93 | + x:Name="CircularButton" |
| 94 | + Text="Circular" |
| 95 | + BackgroundColor="LightGray" |
| 96 | + TextColor="Black" |
| 97 | + Clicked="OnShapeChanged" /> |
| 98 | + </Grid> |
| 99 | + </VerticalStackLayout> |
| 100 | + |
| 101 | + <!-- Continuous Mode Toggle --> |
| 102 | + <Grid ColumnDefinitions="Auto, *" ColumnSpacing="10"> |
| 103 | + <Label Grid.Column="0" Text="Continuous Mode:" VerticalOptions="Center" /> |
| 104 | + <Switch Grid.Column="1" |
| 105 | + x:Name="ContinuousSwitch" |
| 106 | + Toggled="OnContinuousToggled" /> |
| 107 | + </Grid> |
| 108 | + |
| 109 | + <!-- Fade Out Toggle --> |
| 110 | + <Grid ColumnDefinitions="Auto, *" ColumnSpacing="10"> |
| 111 | + <Label Grid.Column="0" Text="Fade Out Effect:" VerticalOptions="Center" /> |
| 112 | + <Switch Grid.Column="1" |
| 113 | + x:Name="FadeOutSwitch" |
| 114 | + Toggled="OnFadeOutToggled" /> |
| 115 | + </Grid> |
| 116 | + |
| 117 | + <!-- Burst Mode Toggle --> |
| 118 | + <Grid ColumnDefinitions="Auto, *" ColumnSpacing="10"> |
| 119 | + <Label Grid.Column="0" Text="Burst Mode:" VerticalOptions="Center" /> |
| 120 | + <Switch Grid.Column="1" |
| 121 | + x:Name="BurstModeSwitch" |
| 122 | + Toggled="OnBurstModeToggled" /> |
| 123 | + </Grid> |
| 124 | + |
| 125 | + <!-- Color Themes --> |
| 126 | + <VerticalStackLayout Spacing="5"> |
| 127 | + <Label Text="Color Theme:" /> |
| 128 | + <Grid ColumnDefinitions="*, *, *, *" ColumnSpacing="5"> |
| 129 | + <Button Grid.Column="0" |
| 130 | + x:Name="RandomColorsButton" |
| 131 | + Text="Random" |
| 132 | + BackgroundColor="Blue" |
| 133 | + TextColor="White" |
| 134 | + FontSize="12" |
| 135 | + Clicked="OnColorThemeChanged" /> |
| 136 | + <Button Grid.Column="1" |
| 137 | + x:Name="RainbowButton" |
| 138 | + Text="Rainbow" |
| 139 | + BackgroundColor="LightGray" |
| 140 | + TextColor="Black" |
| 141 | + FontSize="12" |
| 142 | + Clicked="OnColorThemeChanged" /> |
| 143 | + <Button Grid.Column="2" |
| 144 | + x:Name="PastelButton" |
| 145 | + Text="Pastel" |
| 146 | + BackgroundColor="LightGray" |
| 147 | + TextColor="Black" |
| 148 | + FontSize="12" |
| 149 | + Clicked="OnColorThemeChanged" /> |
| 150 | + <Button Grid.Column="3" |
| 151 | + x:Name="GoldButton" |
| 152 | + Text="Gold" |
| 153 | + BackgroundColor="LightGray" |
| 154 | + TextColor="Black" |
| 155 | + FontSize="12" |
| 156 | + Clicked="OnColorThemeChanged" /> |
| 157 | + </Grid> |
| 158 | + </VerticalStackLayout> |
| 159 | + |
| 160 | + <!-- Preset Configurations --> |
| 161 | + <Label Text="Preset Configurations:" FontAttributes="Bold" /> |
| 162 | + <Grid ColumnDefinitions="*, *, *" ColumnSpacing="10" RowSpacing="10"> |
| 163 | + <Button Grid.Column="0" |
| 164 | + Text="Light Show" |
| 165 | + BackgroundColor="Purple" |
| 166 | + TextColor="White" |
| 167 | + Clicked="OnLightShowClicked" /> |
| 168 | + <Button Grid.Column="1" |
| 169 | + Text="Celebration" |
| 170 | + BackgroundColor="Orange" |
| 171 | + TextColor="White" |
| 172 | + Clicked="OnCelebrationClicked" /> |
| 173 | + <Button Grid.Column="2" |
| 174 | + Text="Party Mode" |
| 175 | + BackgroundColor="HotPink" |
| 176 | + TextColor="White" |
| 177 | + Clicked="OnPartyModeClicked" /> |
| 178 | + </Grid> |
| 179 | + </VerticalStackLayout> |
| 180 | + </Frame> |
| 181 | + |
| 182 | + <!-- Status Information --> |
| 183 | + <Frame BorderColor="Gray" Padding="15" Margin="0,10,0,0"> |
| 184 | + <VerticalStackLayout Spacing="10"> |
| 185 | + <Label Text="Status Information" FontSize="Subtitle" FontAttributes="Bold"/> |
| 186 | + <Label x:Name="StatusLabel" |
| 187 | + Text="Ready to start confetti animation" |
| 188 | + FontSize="14" /> |
| 189 | + <Label x:Name="ConfigLabel" |
| 190 | + Text="Current: 250 particles, Rectangular shape, One-time mode" |
| 191 | + FontSize="12" |
| 192 | + TextColor="Gray" /> |
| 193 | + </VerticalStackLayout> |
| 194 | + </Frame> |
| 195 | + </VerticalStackLayout> |
| 196 | + </ScrollView> |
| 197 | +</ContentPage> |
0 commit comments