Iciclecreek.Avalonia.WindowManager 4.0.0

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

Iciclecreek.Avalonia.WindowManager

NuGet Version Build Status License: MIT

This library implements a window manager for Avalonia with windows defined using Avalonia instead of native windows. This gives you the ability to create MDI style user interfaces in Avalonia, even in environments which don't support windowing like Android and iOS.

windows

Installation

To install you need to add a reference to the nuget package Iciclecreek.Avalonia.WindowManager

dotnet add package Iciclecreek.Avalonia.WindowManager

Usage

This library defines the following controls:

  • WindowsPanel - a panel which hosts managed windows
  • ManagedWindow - a window implementation which is 100% Avalonia controls (no system windows).
  • PortableWindow - a portable window abstraction that automatically uses native system windows on desktop or managed windows on mobile/console.

WindowsPanel control

The WindowsPanel control creates a region that hosts multiple windows. Simply add it to your main view xaml.

    <wm:WindowsPanel x:Name="Windows"/>

ManagedWindow control

The ManagedWindow control is a clone of the Window control. It has standard Window properties like Title, WindowState, WindowStartupLocation, Position, etc. Instead of being hosted using Native windows, a ManagedWindow control is hosted via the Avalonia Overlay system.

Showing a window

To show a window you need to get an instance of the WindowsPanel and call Show().

For example:

   var window = new ManagedWindow()
   {
       Title = "My window",
       WindowStartupLocation=WindowStartupLocation.CenterScreen,
       Width=300, Height=300
   };
   Windows.Show(window);

To close a window you simply call window.Close().

Showing a Dialog

To show a dialog is exactly the same as Avalonia, you instantiate a ManagedWindow and call .ShowDialog() passing in the parent window.

   var dialogWindow = new ManagedWindow()
   {
       Title = "My window",
       WindowStartupLocation=WindowStartupLocation.CenterScreen,
       Width=300, Height=300
   };
   var result = await dialogWindow.ShowDialog<string>(parent);

To close a dialog you call Close(result);

PortableWindow control

The PortableWindow control is a portable window abstraction that lets you write a single window class that works across all platforms. When you call Show() or ShowDialog(), it automatically creates the appropriate host:

  • On desktop (Windows/macOS/Linux) � a native system Window is used
  • On mobile/single-view/Console (Android/iOS/browser) � a ManagedWindow is used

Derive your window classes from PortableWindow instead of Window or ManagedWindow to get automatic platform-appropriate windowing.

Defining a PortableWindow

<wm:PortableWindow xmlns="https://github.com/avaloniaui"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:wm="using:Iciclecreek.Avalonia.WindowManager"
                    x:Class="MyApp.MyPortableWindow"
                    Title="My Window"
                    Width="400" Height="300">
    <TextBlock Text="Hello from a portable window!" />
</wm:PortableWindow>

Showing a PortableWindow

   var window = new MyPortableWindow()
   {
       Title = "My window",
       WindowStartupLocation = WindowStartupLocation.CenterScreen,
       Width = 300, Height = 300
   };
   window.Show(parent);

To close a window you simply call window.Close().

Showing a PortableWindow as a Dialog

   var dialog = new MyPortableWindow()
   {
       Title = "My dialog",
       WindowStartupLocation = WindowStartupLocation.CenterOwner,
       Width = 300, Height = 200
   };
   var result = await dialog.ShowDialog<string>(owner);

To close a dialog you call Close(result);

Supported Properties

PortableWindow exposes the same familiar window properties, automatically synchronized with the underlying host:

Property Description
Title The window title
Icon The window icon
WindowStartupLocation Where the window appears when first shown
SizeToContent How the window sizes to fit its content
CanResize Whether the window can be resized
WindowState Normal, Minimized, or Maximized
ShowActivated Whether the window activates when shown
Topmost Whether the window stays on top
SystemDecorations Title bar and border decorations
AnimateWindow Whether to animate window transitions
ClosingBehavior How closing behaves with child windows
Position The window position

Customizing Host Selection

Override the CreateHost() method to control which host is used:

public class MyPortableWindow : PortableWindow
{
    protected override IPortableWindowHost CreateHost()
    {
        // Force managed windows everywhere
        return new ManagedWindowHost();
    }
}

HotKeys

The window manager supports hotkeys for common actions like closing a window, minimizing, maximizing, etc.

Hotkey Action
Ctrl+F4 Close the current window
Alt+- Show System menu (Restore/Move/Size/Maximize/Minimize/Close)
Ctrl+Tab Activate the previous window
Ctrl+Shift+Tab Activate the next window
Ctrl+F6 Activate the previous window
Ctrl+Shift+F6 Activate the next window

NOTE: On windows consoles Ctrl+Tab and Ctrl+Shift+Tab are handled by the console window, so Ctrl+F6 and Ctrl+Shift+F6 should be used instead.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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 was computed.  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 (1)

Showing the top 1 NuGet packages that depend on Iciclecreek.Avalonia.WindowManager:

Package Downloads
Consolonia.ManagedWindows

Adds support for ManagedWindow, MessageBox, and IStorageProvider/IStorageFile/IStorageFolder.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Iciclecreek.Avalonia.WindowManager:

Repository Stars
Consolonia/Consolonia
A cross-platform UI framework for .NET.
Version Downloads Last Updated
4.0.0 123 2/20/2026
3.0.15 536 1/7/2026
3.0.14 113 1/4/2026
3.0.13 277 12/29/2025
3.0.12 101 12/29/2025
3.0.11 110 12/28/2025
3.0.10 286 11/6/2025
3.0.9 4,369 10/13/2025
3.0.8 1,672 8/26/2025
3.0.7 220 8/20/2025
3.0.6 1,606 8/17/2025
3.0.5 358 8/12/2025
3.0.4 221 8/12/2025
3.0.3 163 8/12/2025
3.0.2 168 8/12/2025
3.0.1 173 8/12/2025
3.0.0 163 8/11/2025
2.1.2 170 8/10/2025
2.1.1 140 8/9/2025
2.1.0 135 8/9/2025
Loading failed