AvalonDock v5.0.0

A powerful WPF Document and Tool Window layout container for building Visual Studio-like docking interfaces.

Get Started View on GitHub


What is AvalonDock?

AvalonDock is a WPF layout container that allows you to arrange documents and tool windows in ways similar to many well-known IDEs such as Visual Studio, Eclipse, and PhotoShop. It provides a complete docking system with floating windows, tabbed documents, auto-hide panels, and customizable themes.

AvalonDock is used by many open source and commercial projects, including Stride (game engine), Optick (profiler), RoslynPad (C# editor), DaxStudio (DAX query tool), Macad3D (3D CAD), and Microsoft’s Profile Explorer.


Key Features

Feature Description
Dockable Panels Dock tool windows to any side of the application, or float them freely.
Tabbed Documents Organize documents in tabbed groups, split horizontally or vertically.
Auto-Hide Minimize tool windows to side tabs, expanding on hover or click.
Floating Windows Tear off any panel into an independent floating window.
Layout Serialization Save and restore complex layouts via XML or JSON.
MVVM Support First-class MVVM integration with view model binding.
Dependency Injection Built-in DI support via Microsoft.Extensions.DependencyInjection.
6 Built-in Themes Arc, VS2013, VS2010, Expression, Metro, and Aero themes included.
Multi-Target Supports .NET 9, .NET 10, and .NET Framework 4.8.

Quick Example

<Window x:Class="MyApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:avalonDock="https://github.com/Dirkster99/AvalonDock">

    <avalonDock:DockingManager>
        <avalonDock:LayoutRoot>
            <avalonDock:LayoutPanel Orientation="Horizontal">
                <avalonDock:LayoutAnchorablePane DockWidth="250">
                    <avalonDock:LayoutAnchorable Title="Solution Explorer"
                                                  ContentId="solutionExplorer">
                        <TextBlock Text="Explorer content here" />
                    </avalonDock:LayoutAnchorable>
                </avalonDock:LayoutAnchorablePane>

                <avalonDock:LayoutDocumentPane>
                    <avalonDock:LayoutDocument Title="Document1.txt"
                                               ContentId="doc1">
                        <TextBox Text="Document content here" />
                    </avalonDock:LayoutDocument>
                </avalonDock:LayoutDocumentPane>
            </avalonDock:LayoutPanel>
        </avalonDock:LayoutRoot>
    </avalonDock:DockingManager>
</Window>

NuGet Packages

Package Description
Dirkster.AvalonDock Core docking library
Dirkster.AvalonDock.Mvvm MVVM base classes (no external dependencies)
Dirkster.AvalonDock.Mvvm.CommunityToolkit CommunityToolkit.Mvvm integration
Dirkster.AvalonDock.Themes.Arc Modern Arc theme (Dark & Light)
Dirkster.AvalonDock.Themes.VS2013 VS2013 theme (Dark, Light, Blue)
Dirkster.AvalonDock.Themes.VS2010 VS2010 theme
Dirkster.AvalonDock.Themes.Expression Expression Blend theme
Dirkster.AvalonDock.Themes.Metro Metro/WinUI theme
Dirkster.AvalonDock.Themes.Aero Classic Aero theme

Platform Support

Framework Status
.NET 10 ✅ Supported
.NET 9 ✅ Supported
.NET Framework 4.8 ✅ Supported

AvalonDock is a WPF library and runs exclusively on Windows.


Upgrading from v4?

If you are migrating from AvalonDock v4.x, see the Migration Guide for a complete list of breaking changes and step-by-step upgrade instructions.


License

AvalonDock is dual-licensed under the MS-PL and Apache 2.0 licenses. It is free for both commercial and open source use.