Soenneker.Blazor.Floating.Windows 3.0.29

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

alternate text is missing from this package README image alternate text is missing from this package README image alternate text is missing from this package README image alternate text is missing from this package README image

<img src="https://user-images.githubusercontent.com/4441470/224455560-91ed3ee7-f510-4041-a8d2-3fc093025112.png" alt="Logo" width="48"/> Soenneker.Blazor.Floating.Windows

Modern, customizable floating windows for Blazor


✨ Features

  • 🪟 Draggable & Resizable — Move and resize windows with smooth, modern UX
  • 🎨 Fully Customizable — Colors, fonts, borders, shadows, and more
  • 🌗 Custom theming — Built-in typed support
  • 🖼️ Multiple Windows — Manage, stack, and focus with z-index
  • 📱 Responsive — Works on desktop and mobile
  • Accessible — ARIA labels, keyboard navigation
  • Event Callbacks — React to show, hide, drag, resize, and more

🚀 Installation

dotnet add package Soenneker.Blazor.Floating.Windows
// Program.cs
using Soenneker.Blazor.Floating.Windows.Registrars;
builder.Services.AddFloatingWindowAsScoped();
// _Imports.razor
@using Soenneker.Blazor.Floating.Windows

🛠️ Basic Usage

<FloatingWindow Title="My Window" Width="400" Height="300">
    <div>
        <h3>Hello World!</h3>
        <p>This is a floating window with your content.</p>
        <button @onclick="() => window?.Close()">Close</button>
    </div>
</FloatingWindow>

🎨 Theming & Styling

Built-in themes:

<FloatingWindow StyleOptions="FloatingWindowStyleOptions.DefaultLight">...</FloatingWindow>
<FloatingWindow StyleOptions="FloatingWindowStyleOptions.DefaultDark">...</FloatingWindow>
<FloatingWindow StyleOptions="FloatingWindowStyleOptions.DemoTheme">...</FloatingWindow>

Custom styling:

<FloatingWindow StyleOptions="new FloatingWindowStyleOptions
{
    BackgroundColor = "#f8f9fa",
    BorderColor = "#dee2e6",
    BorderRadius = "12px",
    TitleBarBackgroundColor = "#007bff",
    TitleBarTextColor = "#ffffff",
    CloseButtonTextColor = "#ffffff",
    CloseButtonHoverBackgroundColor = "rgba(255, 255, 255, 0.2)",
    CustomClass = "my-custom-window",
    CustomStyles = new Dictionary<string, string>
    {
        ["backdrop-filter"] = "blur(10px)",
        ["border"] = "2px solid #007bff"
    }
}">...</FloatingWindow>

💡 Advanced Example

<FloatingWindow @ref="myWindow"
                Title="Advanced Window"
                Width="500"
                Height="400"
                InitialX="100"
                InitialY="100"
                Draggable="true"
                Resizable="true"
                ShowCloseButton="true"
                ShowTitleBar="true"
                CenterOnShow="true"
                ConstrainToViewport="true"
                OnShow="OnWindowShow"
                OnHide="OnWindowHide"
                OnDragStart="OnDragStart"
                OnDragEnd="OnDragEnd">
    <div class="window-content">
        <h3>Advanced Features</h3>
        <p>This window demonstrates all the available features.</p>
        <div class="controls">
            <button @onclick="() => myWindow?.SetPosition(200, 200)">Move to (200,200)</button>
            <button @onclick="() => myWindow?.SetSize(600, 500)">Resize to 600x500</button>
            <button @onclick="() => myWindow?.BringToFront()">Bring to Front</button>
        </div>
    </div>
</FloatingWindow>

@code {
    private FloatingWindow? myWindow;
    private void OnWindowShow() => Console.WriteLine("Window shown!");
    private void OnWindowHide() => Console.WriteLine("Window hidden!");
    private void OnDragStart() => Console.WriteLine("Dragging started!");
    private void OnDragEnd() => Console.WriteLine("Dragging ended!");
}

⚙️ API Overview

Properties

Property Type Default Description
Title string "Window" Title bar text
Width int? 400 Initial width (px)
Height int? 300 Initial height (px)
InitialX int? 100 Initial X position
InitialY int? 100 Initial Y position
Draggable bool? true Enable dragging
Resizable bool? true Enable resizing
ShowCloseButton bool? true Show close button
ShowTitleBar bool? true Show title bar
StyleOptions FloatingWindowStyleOptions DefaultLight Styling config

Events

Event Description
OnShow Window shown
OnHide Window hidden
OnDragStart Dragging started
OnDragEnd Dragging ended

Methods

Method Description
Show() Show window
Hide() Hide window
Toggle() Toggle visibility
GetPosition() Get (x, y)
SetPosition(x, y) Set position
GetSize() Get (width, height)
SetSize(width, height) Set size
BringToFront() Bring window to front
Product Compatible and additional computed target framework versions.
.NET 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 was computed.  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.

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
3.0.29 20 8/22/2025
3.0.28 99 8/17/2025
3.0.27 111 8/15/2025
3.0.26 128 8/12/2025
3.0.25 123 8/12/2025
3.0.24 125 8/12/2025
3.0.23 126 8/12/2025
3.0.22 136 8/11/2025
3.0.21 122 8/11/2025
3.0.20 117 8/11/2025
3.0.19 124 8/11/2025
3.0.18 121 8/11/2025
3.0.17 204 8/7/2025
3.0.16 206 8/6/2025
3.0.15 210 8/5/2025
3.0.14 209 8/5/2025
3.0.13 210 8/5/2025
3.0.12 207 8/5/2025
3.0.11 193 8/5/2025
3.0.10 95 7/29/2025
3.0.9 440 7/24/2025
3.0.8 124 7/16/2025
3.0.7 136 7/16/2025
3.0.6 145 7/14/2025
3.0.5 131 7/14/2025
3.0.4 131 7/14/2025
3.0.3 134 7/14/2025
3.0.2 133 7/14/2025
3.0.1 134 7/13/2025