Install
| Product | Versions |
|---|---|
| .NET |
README
Dock
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
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
AvalonDock compatibility guide — NuGet adapter and runnable sample; full framework parity tracked in #1186
Sample applications can be found under the samples directory which illustrate each approach in a working project:
DockXamlSample- XAML layouts with ItemsSource examplesDockAvalonDockSample- AvalonDock API adapter on official Avalonia; full framework parity remains tracked in #1186DockMvvmSample- Full MVVM implementationDockReactiveUISample- ReactiveUI patternsDockDeferredContentSample- Deferred timeline scopes, delay, order, and presenter-host behaviorDockOfficeSample- Office-style workspaces with ReactiveUI navigationDockCodeOnlySample- Pure C# layoutsNotepad- Real-world text editor exampleVisualStudioDemo- Visual Studio-like interface- And many more specialized examples
License
Dock is licensed under the MIT license.
Changes from Previous Version
Adoption Assessment
Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.
