Core.MauiToolkit.net
1.0.0
dotnet add package Core.MauiToolkit.net --version 1.0.0
NuGet\Install-Package Core.MauiToolkit.net -Version 1.0.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="Core.MauiToolkit.net" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Core.MauiToolkit.net" Version="1.0.0" />
<PackageReference Include="Core.MauiToolkit.net" />
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 Core.MauiToolkit.net --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Core.MauiToolkit.net, 1.0.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 Core.MauiToolkit.net@1.0.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=Core.MauiToolkit.net&version=1.0.0
#tool nuget:?package=Core.MauiToolkit.net&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
MauiToolkit.net
Version 1.0.0 — First official NuGet package release
A lightweight .NET MAUI toolkit that provides:
- Fluent UI icon controls (
FluentIcon,FluentIconButton) - A XAML markup extension for font icons (
FluentIconSourceExtension) - A simple navigation service (
INavigationService/NavigationService) - Base ViewModel lifecycle contracts and implementations
- A base page class wired to ViewModel lifecycle (
ExtendedContentPage<T>)
What is included
1) Fluent icon system
Namespace:
MauiToolkit.ControlsMauiToolkit.Fluent
Types:
FluentIconsenum: large set of Fluent glyph namesFluentIconGlyphs.GetGlyph(...): maps enum values to glyph unicodeFluentIcon(Label): displays an icon fromFluentIconsFluentIconButton(Button): icon button with optional click scale animationFluentIconSourceExtension: createFontImageSourcefrom aFluentIconsvalue
2) Dependency injection setup
Namespace:
MauiToolkit.ServiceCollectionExtensions
Methods:
builder.UseMauiToolkit()- Registers font alias:
FluentIconsRegular - Calls
services.AddMauiToolkit()
- Registers font alias:
services.AddMauiToolkit()- Registers
INavigationServiceas singleton
- Registers
3) Navigation service
Namespace:
MauiToolkit.Services
Behavior:
NavigateTo<TViewModel>()resolves a page type by naming convention:SomeViewModel⇒SomePage
- Resolves the page from DI container
- Navigates with
Shell.Current.Navigation.PushAsync(page)
4) ViewModel and Page lifecycle base classes
Namespace:
MauiToolkit.ViewModelMauiToolkit.Extensions
Types:
IExtendedViewModelOnViewAppearingAsync()OnViewDisappearingAsync()
ILoadableViewModel<T>LoadAsync(T parameter)
ExtendedViewModelExtendedViewModel<T>ExtendedContentPage<TViewModel>- Sets
BindingContext - Calls ViewModel lifecycle methods from page
OnAppearing/OnDisappearing
- Sets
Installation (once published)
dotnet add package MauiToolkit.net
Or add from NuGet Package Manager in Visual Studio.
Quick start
1) Register toolkit in MauiProgram.cs
using MauiToolkit.ServiceCollectionExtensions;
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.UseMauiToolkit();
2) Register your Pages and ViewModels in DI
builder.Services.AddTransient<MainPage>();
builder.Services.AddTransient<MainViewModel>();
NavigationServiceexpects page name conventionXxxViewModel→XxxPageand page must be resolvable from DI.
3) Use icon controls in XAML
<ContentPage
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:controls="clr-namespace:MauiToolkit.Controls;assembly=MauiToolkit.net"
xmlns:fluent="clr-namespace:MauiToolkit.Fluent;assembly=MauiToolkit.net">
<VerticalStackLayout Spacing="12">
<controls:FluentIcon
Icon="Home"
FontSize="28" />
<controls:FluentIconButton
Icon="Add"
Animate="True"
FontSize="24" />
<Image>
<Image.Source>
<fluent:FluentIconSource
Icon="Settings"
Size="22" />
</Image.Source>
</Image>
</VerticalStackLayout>
</ContentPage>
4) Use base page + viewmodel lifecycle
public sealed class MainViewModel : ExtendedViewModel
{
public MainViewModel(INavigationService navigationService)
: base(navigationService) { }
public override Task OnViewAppearingAsync()
{
// Load data, refresh state, etc.
return Task.CompletedTask;
}
}
public partial class MainPage : ExtendedContentPage<MainViewModel>
{
public MainPage(MainViewModel viewModel) : base(viewModel)
{
InitializeComponent();
}
}
5) Navigate using ViewModel type
await NavigationService.NavigateTo<ProfileViewModel>();
Notes for NuGet packaging
To include this README on NuGet.org, add package metadata to MauiToolkit.net.csproj:
<PropertyGroup>
<PackageId>MauiToolkit.net</PackageId>
<Version>1.0.0</Version>
<Authors>YourName</Authors>
<Description>Lightweight .NET MAUI toolkit with Fluent icons, navigation service, and ViewModel/page lifecycle helpers.</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
</ItemGroup>
Then pack and publish:
dotnet pack MauiToolkit.net/MauiToolkit.net.csproj -c Release
dotnet nuget push <path-to-nupkg> --api-key <NUGET_API_KEY> --source https://api.nuget.org/v3/index.json
Changelog
Version 1.0.0 (First Release)
New Features & Improvements:
- Enhanced Navigation Safety:
NavigationServicenow validatesShell.Currentavailability and confirms resolved pages are valid MAUIPageinstances. - Robust Page Resolution: Improved ViewModel→Page type resolution with caching, ambiguity detection, and clear error messages for missing or duplicate pages.
- Safer Lifecycle Handling: Removed
async voidevent handlers inExtendedContentPage. Lifecycle methods are now called with proper async/await and exception handling. - Bindable Control Properties:
FluentIconButton.Animateis now aBindableProperty, enabling XAML binding and style integration. - Complete NuGet Packaging: Added
Microsoft.Maui.Controlspackage reference, font asset inclusion viaMauiFont, and README embedding. - API Refactoring: Namespace simplified from
MauiToolkit.net.ServicestoMauiToolkit.Servicesfor cleaner public API. - Code Quality: Removed unnecessary usings, fixed compiler warnings, and improved nullability handling.
Package Includes:
- Fluent System Icons font (
FluentSystemIcons-Regular.ttf) bundled with library - Example application demonstrating all features (icon controls, navigation, lifecycle, loadable viewmodels)
- Comprehensive README with setup and usage examples
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Maui.Controls (>= 10.0.20)
- Microsoft.Maui.Controls.Core (>= 10.0.20)
- Microsoft.Maui.Core (>= 10.0.20)
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 |
|---|---|---|
| 1.0.0 | 118 | 3/17/2026 |