FireFenyx.Notifications.Abstractions 1.0.0

dotnet add package FireFenyx.Notifications.Abstractions --version 1.0.0
                    
NuGet\Install-Package FireFenyx.Notifications.Abstractions -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.Notifications.Abstractions" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FireFenyx.Notifications.Abstractions" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="FireFenyx.Notifications.Abstractions" />
                    
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.Notifications.Abstractions --version 1.0.0
                    
#r "nuget: FireFenyx.Notifications.Abstractions, 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.Notifications.Abstractions@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.Notifications.Abstractions&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=FireFenyx.Notifications.Abstractions&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 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  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

    • No dependencies.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on FireFenyx.Notifications.Abstractions:

Package Downloads
FireFenyx.WinUI.Notifications

In-app toast-style notification host and service for WinUI 3 — animated transitions, progress tracking, persistent notifications, Fluent and AccentStrip styles.

FireFenyx.Wpf.Notifications

In-app toast-style notification host and service for WPF - animated transitions, progress tracking, persistent notifications, Fluent and AccentStrip styles.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 137 3/11/2026
1.0.0-preview.3 72 3/10/2026
1.0.0-preview.2 59 3/9/2026
1.0.0-preview.1 66 3/8/2026