FireFenyx.Wpf.Notifications 1.0.0

dotnet add package FireFenyx.Wpf.Notifications --version 1.0.0
                    
NuGet\Install-Package FireFenyx.Wpf.Notifications -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="FireFenyx.Wpf.Notifications" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FireFenyx.Wpf.Notifications" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="FireFenyx.Wpf.Notifications" />
                    
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 FireFenyx.Wpf.Notifications --version 1.0.0
                    
#r "nuget: FireFenyx.Wpf.Notifications, 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 FireFenyx.Wpf.Notifications@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=FireFenyx.Wpf.Notifications&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=FireFenyx.Wpf.Notifications&version=1.0.0
                    
Install as a Cake Tool

FireFenyx.Notifications

Toast-style in-app notification library for WPF and WinUI 3 with animated transitions, progress tracking, persistent notifications, and two built-in visual styles.

CI NuGet WinUI NuGet WPF NuGet Abstractions License: MIT .NET 8 .NET 9 .NET 10


Demo

WPF WinUI
▶ Watch WPF demo ▶ Watch WinUI demo

Notification Styles

Fluent

A severity-colored background inspired by the WinUI InfoBar.

WPF WinUI
WPF Fluent WinUI Fluent

AccentStrip

A colored accent strip on the leading edge with a material background.

WPF WinUI
WPF Strip WinUI Strip

Features

  • Success / Info / Warning / Error — one-liner convenience methods
  • Progress notifications — determinate and indeterminate with live updates
  • Persistent notifications — stay visible until dismissed programmatically
  • Action buttons — attach an ICommand, Action, or Func<Task> to any notification
  • Animated transitions — SlideUp, Fade, Scale, SlideAndFade
  • Background materials — Solid, Acrylic, Mica
  • Two bar styles — Fluent and AccentStrip, switchable at runtime
  • Auto-dismiss with configurable duration
  • Stacking — multiple notifications stack with configurable spacing and position (Top / Bottom)
  • DI-friendly — one call to register, auto-connects to the host control
  • Shared abstractions — write your ViewModel once, run on both WPF and WinUI

Solution Structure

FireFenyx.Notifications.Abstractions      → Shared models, interfaces, service implementation (net10.0)
FireFenyx.Wpf.Notifications              → WPF control + queue (net10.0-windows)
FireFenyx.WinUI.Notifications            → WinUI 3 control + queue (net10.0-windows10.0.22621.0)
FireFenyx.Notifications.SampleApp.Shared → Shared ViewModel + IDialogService (net10.0)
FireFenyx.Wpf.Notifications.SampleApp    → WPF sample app
FireFenyx.WinUI.Notifications.SampleApp  → WinUI 3 sample app
FireFenyx.Wpf.Notifications.Tests        → WPF unit tests (xUnit)
FireFenyx.WinUI.Notifications.Tests      → WinUI unit tests (xUnit)

Installation

Install the package for your target framework:

WPF

dotnet add package FireFenyx.Wpf.Notifications

WinUI 3

dotnet add package FireFenyx.WinUI.Notifications

Each package brings in FireFenyx.Notifications.Abstractions automatically.


Getting Started

1. Register services

var services = new ServiceCollection();
services.AddNotificationServices();

2. Drop the host control in your window

WPF

<notifications:NotificationHost
    BarStyle="{Binding SelectedBarStyle}"
    HostPosition="Bottom"
    DefaultDurationMs="4000"
    DefaultTransition="SlideAndFade"
    DefaultMaterial="Acrylic"
    HostHorizontalAlignment="Center"
    HostSpacing="10"
    HostPadding="0,0,0,8" />

WinUI

<notifications:NotificationHost
    BarStyle="{x:Bind ViewModel.SelectedBarStyle, Mode=OneWay}"
    HostPosition="Bottom"
    DefaultDurationMs="4000"
    DefaultTransition="SlideAndFade"
    DefaultMaterial="Acrylic"
    HostHorizontalAlignment="Center"
    HostSpacing="10"
    HostPadding="0,0,0,8" />

The host auto-connects to the INotificationQueue registered by AddNotificationServices() — no manual XAML wiring needed.

3. Show notifications

// One-liners
_notifications.Success("Operation completed!");
_notifications.Warning("Check your connection.");
_notifications.Error("Something went wrong!", durationMs: 5000);

// Progress
var handle = _notifications.ShowProgress("Uploading...", progress: 0);
handle.Report(50, "Uploading... 50%");
handle.Complete("Upload finished!");

// Persistent
var persistent = _notifications.ShowPersistent(
    "No connection. Retrying...",
    level: NotificationLevel.Warning,
    isClosable: false);
// later...
persistent.Dismiss();

// Full control
_notifications.Show(new NotificationRequest
{
    Message = "Sending file...",
    Level = NotificationLevel.Info,
    IsInProgress = true,
    ActionText = "Cancel",
    ActionCommand = MyCancelCommand,
    DurationMs = 3000
});

Host Properties

Property Type Default Description
HostPosition Top / Bottom Bottom Where notifications stack
BarStyle Fluent / AccentStrip Fluent (WinUI) / AccentStrip (WPF) Visual style
DefaultDurationMs int 3000 Auto-dismiss duration (ms)
DefaultTransition SlideUp / Fade / Scale / SlideAndFade SlideAndFade Animation
DefaultMaterial Solid / Acrylic / Mica Acrylic Background material
HostHorizontalAlignment Left / Center / Right / Stretch Center Horizontal alignment
HostSpacing double 8 Gap between stacked notifications
HostPadding Thickness 0 Additional padding around the stack
NotificationWidth double 0 (auto) Fixed notification width
NotificationMaxWidth double 0 (none) Maximum notification width

Requirements

  • .NET 8, .NET 9, or .NET 10
  • Windows App SDK 1.8+ (WinUI)

Note: The sample apps and unit tests target .NET 10 and require the .NET 10 SDK to build and run.

License

MIT — Jose Valencia

Product Compatible and additional computed target framework versions.
.NET net8.0-windows7.0 is compatible.  net9.0-windows was computed.  net9.0-windows7.0 is compatible.  net10.0-windows was computed.  net10.0-windows7.0 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
1.0.0 104 3/11/2026
1.0.0-preview.3 50 3/10/2026
1.0.0-preview.2 37 3/9/2026
1.0.0-preview.1 39 3/8/2026