Fishman.Maui.Shell.MarkerModifier 10.3.0

dotnet add package Fishman.Maui.Shell.MarkerModifier --version 10.3.0
                    
NuGet\Install-Package Fishman.Maui.Shell.MarkerModifier -Version 10.3.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Fishman.Maui.Shell.MarkerModifier" Version="10.3.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Fishman.Maui.Shell.MarkerModifier" Version="10.3.0" />
                    
Directory.Packages.props
<PackageReference Include="Fishman.Maui.Shell.MarkerModifier" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Fishman.Maui.Shell.MarkerModifier --version 10.3.0
                    
#r "nuget: Fishman.Maui.Shell.MarkerModifier, 10.3.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Fishman.Maui.Shell.MarkerModifier@10.3.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Fishman.Maui.Shell.MarkerModifier&version=10.3.0
                    
Install as a Cake Addin
#tool nuget:?package=Fishman.Maui.Shell.MarkerModifier&version=10.3.0
                    
Install as a Cake Tool

Maui.Shell.MarkerModifier

Maui.Shell.MarkerModifier is a lightweight .NET MAUI library for styling and customizing Shell navigation visual markers (selection indicators).

Starting with version 10.3.0, the library provides the modern ShellMarker Attached Properties API for declarative styling directly in XAML with full Hot Reload support.


✨ Features

  • 🎨 Declarative XAML Integration: Set Color, Dimensions (Width, Height), CornerRadius, Margin, and Visibility directly on your <Shell> root element.
  • 🔥 Hot Reload Support: Tweak marker appearance at runtime without restarting your application.
  • 🌓 Theme-Aware (Windows WinUI 3): Fully persists custom indicator styling across system theme changes (Light / Dark mode).
  • 📱 Multi-Platform Architecture: Windows (WinUI 3) selection indicators fully styled; Android and iOS platform hooks prepared.
  • 🔄 100% Backwards Compatible: Retains MarkerWindowsExtensions for projects upgrading from 10.2.0.

📦 Installation

Install the package via the .NET CLI:

dotnet add package Fishman.Maui.Shell.MarkerModifier --version 10.3.0

Or via the NuGet Package Manager Console:

Install-Package Fishman.Maui.Shell.MarkerModifier -Version 10.3.0

🚀 Getting Started

1. Setup in AppShell.xaml

Add the xmlns:marker namespace and apply the ShellMarker attached properties to your root <Shell> tag:

<Shell x:Class="MyMauiApp.AppShell"
       xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
       xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
       xmlns:marker="clr-namespace:Maui.Shell.MarkerModifier;assembly=Maui.Shell.MarkerModifier"
       xmlns:local="clr-namespace:MyMauiApp"
       Title="MyMauiApp"
       FlyoutBehavior="Locked"

       
       marker:ShellMarker.Color="DarkGoldenrod"
       marker:ShellMarker.Width="30"
       marker:ShellMarker.Height="30"
       marker:ShellMarker.CornerRadius="6"
       marker:ShellMarker.Margin="4,0,4,0"
       marker:ShellMarker.IsVisible="True">

    <ShellContent Title="Home"
                  ContentTemplate="{DataTemplate local:MainPage}"
                  Route="MainPage" />

    <ShellContent Title="Settings"
                  ContentTemplate="{DataTemplate local:SettingsPage}"
                  Route="SettingsPage" />
</Shell>

Tip: Because Maui.Shell.MarkerModifier defines [XmlnsDefinition], you can also use ShellMarker.* directly without declaring a custom namespace in many XAML compilers!


⚙️ Available Attached Properties

All properties can be applied via the ShellMarker class (or via MarkerWindowsExtensions for 10.2.0 compatibility):

Property Type Default Value Description
Color Color? null Marker foreground color.
Width double -1 Width of the marker bar (vertical indicator in left navigation). Set to 0 to hide.
Height double -1 Height of the marker bar (horizontal indicator in top navigation). Set to 0 to hide.
CornerRadius CornerRadius -1 Corner rounding for the marker bar.
Margin Thickness -1 Margin spacing around the selection indicator.
IsVisible bool true Toggles whether the marker is rendered. When false, size collapses to 0.

⚠️ Migration Notes

  • Upgrading from 10.2.0: The MarkerWindowsExtensions class is preserved and delegates to ShellMarker. Existing code using marker:MarkerWindowsExtensions.Color will continue to compile and run seamlessly.
  • Upgrading from 10.1.0 or older: The fluent builder method .UseShellMarker() in MauiProgram.cs is deprecated in favor of declarative XAML Attached Properties.

📄 License

Distributed under the Boost Software License – Version 1.0. See License.txt for details.

Copyright (c) 2025–2026 Fishman. Built for the .NET MAUI community.

Product Compatible and additional computed target framework versions.
.NET net10.0-android36.0 is compatible.  net10.0-ios26.0 is compatible.  net10.0-maccatalyst26.0 is compatible.  net10.0-windows10.0.19041 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.3.0 106 9/13/2026
10.2.0 176 1/8/2026
10.0.1 235 12/24/2025

Version 10.3.0:
- Added modern, clean ShellMarker XAML Attached Properties API (Color, Width, Height, CornerRadius, Margin, IsVisible).
- Fixed WinUI 3 resource type handling by using SolidColorBrush for NavigationViewSelectionIndicatorForeground.
- Added support for system theme switching (Light/Dark) without marker color resets.
- Fixed static initialization null-reference risks and removed crash hazards on null bindings.
- Added platform architecture support for Android, iOS, and MacCatalyst.
- Full backwards compatibility with version 10.2.0 MarkerWindowsExtensions.