Download Logo

Auto carousel in MAUI

## 1. Create the Reusable Component Files 🧱 First, add a new item to your project. Choose the .NET MAUI ContentView (XAML) template. Name it something descriptive, like FeaturedCarouselView.xaml. ## 2. UI code sample of the ContentView FeaturedCarouselView.xaml: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 <?xml version="1.0" encoding="utf-8" ?> <ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:YourMauiProjectName" x:Class="YourMauiProjectName.FeaturedCarouselView"> <ContentView.Resources> <ResourceDictionary> <Color x:Key="CardBackgroundColor">#F9FAFB</Color> <Color x:Key="ForegroundColor">#111827</Color> <Color x:Key="MutedForegroundColor">#6B7280</Color> <Color x:Key="BorderColor">#E5E7EB</Color> <Color x:Key="PrimaryColor">#4A90E2</Color> <Style x:Key="CardBorderStyle" TargetType="Border"> <Setter Property="Stroke" Value="{StaticResource BorderColor}" /> <Setter Property="StrokeThickness" Value="1" /> <Setter Property="BackgroundColor" Value="{StaticResource PageBackgroundColor}" /> <Setter Property="StrokeShape" Value="RoundRectangle 8" /> <Setter Property="Padding" Value="0" /> <Setter Property="Shadow"> <Shadow Brush="Black" Offset="2,2" Radius="5" Opacity="0.1" /> </Setter> </Style> <Style x:Key="PrimaryButtonStyle" TargetType="Button"> <Setter Property="BackgroundColor" Value="{StaticResource PrimaryColor}" /> <Setter Property="TextColor" Value="{StaticResource PrimaryTextColor}" /> <Setter Property="FontAttributes" Value="Bold" /> <Setter Property="HeightRequest" Value="48" /> <Setter Property="CornerRadius" Value="8" /> <Setter Property="Padding" Value="24,0" /> </Style> </ResourceDictionary> </ContentView.Resources> <VerticalStackLayout Spacing="16" BackgroundColor="{StaticResource CardBackgroundColor}"> <CarouselView x:Name="FeaturedCarousel" IndicatorView="FeaturedIndicator" HeightRequest="500"> <CarouselView.ItemTemplate> <DataTemplate x:DataType="local:CarouselItem"> <VerticalStackLayout Padding="16,0" Spacing="24"> <Border Style="{StaticResource CardBorderStyle}" StrokeShape="RoundRectangle 12" HeightRequest="300"> <Image Source="{Binding ImageUrl}" Aspect="AspectFill" /> </Border> <VerticalStackLayout Spacing="16" HorizontalOptions="Center" Padding="16,0"> <Label Text="{Binding Title}" TextColor="{StaticResource ForegroundColor}" FontSize="24" FontAttributes="Bold" HorizontalTextAlignment="Center" /> <Label Text="{Binding Description}" TextColor="{StaticResource MutedForegroundColor}" FontSize="16" HorizontalTextAlignment="Center" /> <Button Text="Discover More →" Style="{StaticResource PrimaryButtonStyle}" HorizontalOptions="Center" /> </VerticalStackLayout> </VerticalStackLayout> </DataTemplate> </CarouselView.ItemTemplate> </CarouselView> <IndicatorView x:Name="FeaturedIndicator" IndicatorColor="{StaticResource BorderColor}" SelectedIndicatorColor="{StaticResource PrimaryColor}" HorizontalOptions="Center" Margin="0,0,0,16"/> </VerticalStackLayout> </ContentView> ## 3. Logic to the Component’s Code-Behind Important: We use the Loaded and Unloaded events to start and stop the timer. ...

June 23, 2025 · 3 min · 523 words · PrashantUnity
Download Logo

Entry without underline

Create Custom Entry Control 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 namespace WaterReminder.CFDControl; public class CfdEntry :Entry { protected override void OnHandlerChanged() { base.OnHandlerChanged(); SetBorderlessBackground(); } protected override void OnPropertyChanged([CallerMemberName] string propertyName = null) { base.OnPropertyChanged(propertyName); if (propertyName == nameof(BackgroundColor)) { SetBorderlessBackground(); } } private void SetBorderlessBackground() { #if ANDROID if (Handler is IEntryHandler entryHandler) { if (BackgroundColor == null) { entryHandler.PlatformView.BackgroundTintList = Android.Content.Res.ColorStateList.ValueOf(Colors.Transparent.ToPlatform()); } else { entryHandler.PlatformView.BackgroundTintList = Android.Content.Res.ColorStateList.ValueOf(BackgroundColor.ToPlatform()); } } #endif } } Step uses Import Name Spaces. in Xaml and so on … ...

June 19, 2025 · 2 min · 253 words · PrashantUnity
Download Logo

Floating action button

Code Snippet 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <AbsoluteLayout> <Grid AbsoluteLayout.LayoutBounds="0,0,1,1" AbsoluteLayout.LayoutFlags="All" > <Grid> <Border StrokeShape="RoundRectangle 30" HeightRequest="60" WidthRequest="60" BackgroundColor="Black" AbsoluteLayout.LayoutBounds="1, 1, AutoSize, AutoSize" AbsoluteLayout.LayoutFlags="PositionProportional" TranslationX="-30" TranslationY="-30" > <Border.GestureRecognizers> <TapGestureRecognizer Tapped="AddButton_Clicked" /> </Border.GestureRecognizers> <Label Text="➕" TextColor="White" VerticalOptions="Center" HorizontalOptions="Center" FontSize="25"/> </Border> </AbsoluteLayout>

June 19, 2025 · 1 min · 60 words · PrashantUnity
Download Logo

SQLite in MAUI

Implementation Steps Install/ Add Microsoft.EntityFrameworkCore.Sqlite to Project 1 <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.7" /> Register App db Context before var app = builder.Build(); in MauiProgram.cs 1 2 3 var dbPath = Path.Combine(FileSystem.AppDataDirectory, "waterreminder.db3"); builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlite($"Filename={dbPath}")); Just Before app run add this Command 1 2 3 4 5 6 7 8 // Initialize the database using (var scope = app.Services.CreateScope()) { var dbContext = scope.ServiceProvider.GetRequiredService<AppDbContext>(); dbContext.Database.EnsureCreated(); } return app; Create Add Db Context 1 2 3 4 5 6 namespace WaterReminder.Data; public class AppDbContext(DbContextOptions<AppDbContext> options) : DbContext(options) { public DbSet<Reminder> Reminders { get; set; } } Below is service or uses 1 2 3 4 5 6 7 8 9 10 11 public class ReminderService : IReminderService { private readonly AppDbContext _context; public ReminderService(AppDbContext context) { _context = context; } public Task<List<Reminder>> GetRemindersAsync() => _context.Reminders.ToListAsync(); }

June 19, 2025 · 1 min · 134 words · PrashantUnity
Download Logo

Giscus in Blazor

Giscus Script Configuration Be sure To Change Parameter value Based on you Generation from here https://giscus.app/ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <script src="https://giscus.app/client.js" data-repo="PrashantUnity/GettingStarted" data-repo-id="R_kgDOKzC5Hw" data-category="General" data-category-id="DIC_kwDOKzC5H84CdPDh" data-mapping="specific" data-term=" GettingStarted Discussions" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="top" data-theme="light" data-lang="en" data-loading="lazy" crossorigin="anonymous" async> </script> Above Code is Coverted to be usable in Blazor 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 @using Microsoft.AspNetCore.Components @if (Script != null) { <div> @Script </div> } @code { #region Parameter // change only commented section [Parameter] public string InputPosition { get; set; } = "top"; [Parameter] public string Term { get; set; } = "GettingStarted Discussions"; // name anything it will create one one discussion based on name [Parameter] public string Repo { get; set; } = "PrashantUnity/GettingStarted"; // your repository name [Parameter] public string RepoId { get; set; } = "R_kgDOKzC5Hw"; // this is generated by giscus website only one time creation required for one repo #endregion public string Category { get; set; } = "General"; public string CategoryId { get; set; } = "DIC_kwDOKzC5H84CdPDh"; // this is generateeed by giscus website only one time creation required for one repo public string Mapping { get; set; } = "specific"; public bool ReactionsEnabled { get; set; } = true; public string Theme { get; set; } = "light"; public string Language { get; set; } = "en"; public string Loading { get; set; } = "lazy"; public string EmitMetadata { get; set; } = "0"; public string Strict { get; set; } = "0"; private RenderFragment Script { get; set; } protected override void OnParametersSet() { Script = new RenderFragment(b => { b.OpenElement(0, "script"); b.AddMultipleAttributes(1, new List<KeyValuePair<string, object>>() { new KeyValuePair<string, object>("src", "https://giscus.app/client.js"), new KeyValuePair<string, object>("data-repo", Repo), new KeyValuePair<string, object>("data-repo-id", RepoId), new KeyValuePair<string, object>("data-category", Category), new KeyValuePair<string, object>("data-category-id", CategoryId), new KeyValuePair<string, object>("data-mapping", Mapping), new KeyValuePair<string, object>("data-term", Term), new KeyValuePair<string, object>("data-strict", Strict), new KeyValuePair<string, object>("data-reactions-enabled", ReactionsEnabled ? "1" : "0"), new KeyValuePair<string, object>("data-emit-metadata", EmitMetadata), new KeyValuePair<string, object>("data-input-position", InputPosition), new KeyValuePair<string, object>("data-theme", Theme), new KeyValuePair<string, object>("data-lang", Language), new KeyValuePair<string, object>("data-loading", Loading), new KeyValuePair<string, object>("crossorigin", "anonymous"), new KeyValuePair<string, object>("async", true), }); b.CloseElement(); }); } } Uses 1 <GiscusIntegration />

July 12, 2024 · 2 min · 417 words · PrashantUnity
Download Logo

If / else (Ch. 6)

C# Conditional Statements and Control Flow Example: If-Else Statement Here is an example that demonstrates the use of if, else if, and else statements to check the value of a variable and print corresponding messages. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 int number = 10; if (number > 10) { Console.WriteLine("The number is greater than 10"); } else if (number == 10) { Console.WriteLine("The number is equal to 10"); } else { Console.WriteLine("The number is less than 10"); } Explanation If Statement ...

June 20, 2024 · 3 min · 553 words · PrashantUnity
Download Logo

Loops (Ch. 7)

Understanding Loops in C# Loops are fundamental programming constructs that allow you to execute a block of code repeatedly. They’re essential for: Processing collections of data Repeating operations until a condition is met Automating repetitive tasks Iterating through arrays and lists Think of loops as a way to tell the computer: “Do this task over and over again until I tell you to stop.” Types of Loops in C# C# provides four main types of loops: ...

June 19, 2024 · 15 min · 3098 words · PrashantUnity
Download Logo

Methods in C# (Ch. 8)

Understanding C# Methods and Functions What are Functions and Methods? A function (also called a method in C#) is a reusable block of code that performs a specific task. Think of it as a recipe that you can follow multiple times with different ingredients (parameters) to get the same type of result. Why Use Functions? Functions solve several important problems in programming: Code Reusability: Write once, use many times Code Organization: Break complex problems into smaller, manageable pieces Maintainability: Fix bugs or update logic in one place Testing: Test individual pieces of functionality Readability: Make code more self-documenting Real-World Example: The Problem Without Functions Let’s say you want to calculate the sum of two numbers with validation. Without functions, you’d write: ...

June 20, 2024 · 13 min · 2611 words · PrashantUnity
Docs

Bulk-clear Google Docs recents

How to Bulk Delete “Recent Documents” shared with you on the Google Docs Homescreen Using JavaScript If you’ve ever tried to clean up your Google Docs homescreen by removing old or shared documents, you know how tedious it can be. Google doesn’t provide a built-in way to bulk delete files from the “Recent Documents” section, and the interface is designed to make it difficult to accidentally delete files. This means you have to click through each file’s 3-dot menu and select “Remove” one by one. ...

February 24, 2026 · 4 min · 731 words · PrashantUnity
Download Logo

Linear structures (Ch. 9)

C# Linear Data Structures Arrays Arrays are fixed-size collections of elements of the same type. They allow direct access to elements via index. Example: Arrays 1 int[] numbers = new int[] { 1, 2, 3, 4, 5 }; Lists Lists are dynamic arrays that can grow in size. They provide methods to add, remove, and access elements. Example: Lists 1 2 3 List<string> names = new List<string>(); names.Add("Alice"); names.Add("Bob"); Queues Queues follow the First-In-First-Out (FIFO) principle. Elements are added at the end and removed from the front. ...

June 20, 2024 · 2 min · 375 words · PrashantUnity