wieslawsoltes/Dock

A docking layout system.

C#

1,490

4,355 commits

updated Oct 12, 2026

See the code

README

Dock

Gitter

Build Status CI

NuGet NuGet MyGet

A docking layout system.

About

Dock is a docking layout system for Avalonia applications. Use of Dock is governed by the MIT License.

Key Features:

  • ItemsSource Support: Bind document collections directly to DocumentDock for automatic document management
  • Flexible Content Templates: Use DocumentTemplate for customizable document content rendering
  • Optional Document Content Caching: Keep document views alive across tab switches via theme option (CacheDocumentTabContent)
  • Deferred Content Materialization: Defer expensive content presenter work with shared or scoped timelines, per-host delay, and explicit ordering
  • Multiple MVVM Frameworks: Support for ReactiveUI, Prism, ReactiveProperty, and standard MVVM patterns
  • Comprehensive Serialization: Save and restore layouts with multiple format options (JSON, XML, YAML, Protobuf)
  • Rich Theming: Fluent and Simple themes with full customization support
  • Floating Windows: Detach documents and tools into separate windows
  • Dependency Injection: First-class support for .NET DI containers

Dock

Building Dock

First, clone the repository or download the latest zip.

git clone https://github.com/wieslawsoltes/Dock.git

Build using .NET Core

Open up a terminal prompt and execute the commands.

Target frameworks: libraries multi-target net6.0, net8.0, and net10.0. Samples target net10.0 unless noted otherwise.

dotnet build src/Dock.Avalonia/Dock.Avalonia.csproj -c Release -f net10.0

Alternatively execute the repository build script which restores, builds and tests all projects. The scripts work on Windows and Unix like systems:

./build.sh       # or .\build.cmd on Windows

NuGet

Dock is delivered as a NuGet package.

You can find the packages here NuGet and install the package like this:

Install-Package Dock.Avalonia
Install-Package Dock.Model.Mvvm
Install-Package Dock.Serializer.Newtonsoft
Install-Package Dock.Avalonia.Themes.Fluent
Install-Package Dock.Avalonia.Themes.Browser
Install-Package Dock.Controls.DeferredContentControl

Available NuGet packages:

Avalonia 11 packages

Applications that remain on Avalonia 11 should use the .v11 package lane. These packages are source-linked from the current Dock implementation, target Avalonia 11.3.22, and must not be mixed with the unsuffixed Avalonia 12 Dock packages.

Install-Package Dock.Avalonia.v11
Install-Package Dock.Avalonia.Diagnostics.v11
Install-Package Dock.Avalonia.Themes.Fluent.v11
Install-Package Dock.Avalonia.Themes.Browser.v11
Install-Package Dock.Avalonia.Themes.Simple.v11

The Avalonia 11 ReactiveUI sample can be built with:

dotnet build samples/DockReactiveUISample.v11/DockReactiveUISample.v11.csproj -c Release

Nightly Packages

Nightly builds are published to GitHub Packages on pushes to master. Versions use the nightly.YYYYMMDD.RUN suffix.

Add the GitHub Packages source (replace OWNER with the repository owner):

  • https://nuget.pkg.github.com/OWNER/index.json

Authenticate with a GitHub token that has read:packages:

dotnet nuget add source https://nuget.pkg.github.com/wieslawsoltes/index.json -n github -u YOUR_GITHUB_USERNAME -p YOUR_GITHUB_TOKEN --store-password-in-clear-text

Install pre-release packages:

Install-Package Dock.Avalonia -Pre
Install-Package Dock.Model.Mvvm -Pre
Install-Package Dock.Serializer.Newtonsoft -Pre
Install-Package Dock.Avalonia.Themes.Fluent -Pre
Install-Package Dock.Avalonia.Themes.Browser -Pre

Resources

  • Documentation index

  • Sample applications can be found under the samples directory which illustrate each approach in a working project:

    • DockXamlSample - XAML layouts with ItemsSource examples
    • DockMvvmSample - Full MVVM implementation
    • DockReactiveUISample - ReactiveUI patterns
    • DockDeferredContentSample - Deferred timeline scopes, delay, order, and presenter-host behavior
    • DockOfficeSample - Office-style workspaces with ReactiveUI navigation
    • DockCodeOnlySample - Pure C# layouts
    • Notepad - Real-world text editor example
    • VisualStudioDemo - Visual Studio-like interface
    • And many more specialized examples
  • GitHub source code repository.

License

Dock is licensed under the MIT license.

avalonia
avaloniaui
control
dock
docking
docking-application
docking-framework
docking-layout
docking-library
gui
layout
multi-platform
reactiveui
system
xaml

wieslawsoltes/Dock

A docking layout system.

C#

1,490

4,355 commits

updated Oct 12, 2026

See the code

README

Dock

Gitter

Build Status CI

NuGet NuGet MyGet

A docking layout system.

About

Dock is a docking layout system for Avalonia applications. Use of Dock is governed by the MIT License.

Key Features:

  • ItemsSource Support: Bind document collections directly to DocumentDock for automatic document management
  • Flexible Content Templates: Use DocumentTemplate for customizable document content rendering
  • Optional Document Content Caching: Keep document views alive across tab switches via theme option (CacheDocumentTabContent)
  • Deferred Content Materialization: Defer expensive content presenter work with shared or scoped timelines, per-host delay, and explicit ordering
  • Multiple MVVM Frameworks: Support for ReactiveUI, Prism, ReactiveProperty, and standard MVVM patterns
  • Comprehensive Serialization: Save and restore layouts with multiple format options (JSON, XML, YAML, Protobuf)
  • Rich Theming: Fluent and Simple themes with full customization support
  • Floating Windows: Detach documents and tools into separate windows
  • Dependency Injection: First-class support for .NET DI containers

Dock

Building Dock

First, clone the repository or download the latest zip.

git clone https://github.com/wieslawsoltes/Dock.git

Build using .NET Core

Open up a terminal prompt and execute the commands.

Target frameworks: libraries multi-target net6.0, net8.0, and net10.0. Samples target net10.0 unless noted otherwise.

dotnet build src/Dock.Avalonia/Dock.Avalonia.csproj -c Release -f net10.0

Alternatively execute the repository build script which restores, builds and tests all projects. The scripts work on Windows and Unix like systems:

./build.sh       # or .\build.cmd on Windows

NuGet

Dock is delivered as a NuGet package.

You can find the packages here NuGet and install the package like this:

Install-Package Dock.Avalonia
Install-Package Dock.Model.Mvvm
Install-Package Dock.Serializer.Newtonsoft
Install-Package Dock.Avalonia.Themes.Fluent
Install-Package Dock.Avalonia.Themes.Browser
Install-Package Dock.Controls.DeferredContentControl

Available NuGet packages:

Avalonia 11 packages

Applications that remain on Avalonia 11 should use the .v11 package lane. These packages are source-linked from the current Dock implementation, target Avalonia 11.3.22, and must not be mixed with the unsuffixed Avalonia 12 Dock packages.

Install-Package Dock.Avalonia.v11
Install-Package Dock.Avalonia.Diagnostics.v11
Install-Package Dock.Avalonia.Themes.Fluent.v11
Install-Package Dock.Avalonia.Themes.Browser.v11
Install-Package Dock.Avalonia.Themes.Simple.v11

The Avalonia 11 ReactiveUI sample can be built with:

dotnet build samples/DockReactiveUISample.v11/DockReactiveUISample.v11.csproj -c Release

Nightly Packages

Nightly builds are published to GitHub Packages on pushes to master. Versions use the nightly.YYYYMMDD.RUN suffix.

Add the GitHub Packages source (replace OWNER with the repository owner):

  • https://nuget.pkg.github.com/OWNER/index.json

Authenticate with a GitHub token that has read:packages:

dotnet nuget add source https://nuget.pkg.github.com/wieslawsoltes/index.json -n github -u YOUR_GITHUB_USERNAME -p YOUR_GITHUB_TOKEN --store-password-in-clear-text

Install pre-release packages:

Install-Package Dock.Avalonia -Pre
Install-Package Dock.Model.Mvvm -Pre
Install-Package Dock.Serializer.Newtonsoft -Pre
Install-Package Dock.Avalonia.Themes.Fluent -Pre
Install-Package Dock.Avalonia.Themes.Browser -Pre

Resources

  • Documentation index

  • Sample applications can be found under the samples directory which illustrate each approach in a working project:

    • DockXamlSample - XAML layouts with ItemsSource examples
    • DockMvvmSample - Full MVVM implementation
    • DockReactiveUISample - ReactiveUI patterns
    • DockDeferredContentSample - Deferred timeline scopes, delay, order, and presenter-host behavior
    • DockOfficeSample - Office-style workspaces with ReactiveUI navigation
    • DockCodeOnlySample - Pure C# layouts
    • Notepad - Real-world text editor example
    • VisualStudioDemo - Visual Studio-like interface
    • And many more specialized examples
  • GitHub source code repository.

License

Dock is licensed under the MIT license.

avalonia
avaloniaui
control
dock
docking
docking-application
docking-framework
docking-layout
docking-library
gui
layout
multi-platform
reactiveui
system
xaml

Significant stargazers

Filip Navara

221 followers · starred Aug 2024

Bennet Bo Fenner

94 followers · starred May 2021

Matthew John Cheetham

311 followers · starred May 2020

adams85

24 followers · starred May 2025