Dock
A docking layout system.
Install / Use
/learn @wieslawsoltes/DockREADME
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) - 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
Available NuGet packages:
| NuGet | Package | Downloads |
| --- | --- | --- |
| |
Dock.Avalonia | |
|
|
Dock.Avalonia.Diagnostics | |
|
|
Dock.Avalonia.Themes.Fluent | |
|
|
Dock.Avalonia.Themes.Browser | |
|
|
Dock.Avalonia.Themes.Simple | |
|
|
Dock.Controls.ProportionalStackPanel | |
|
|
Dock.Controls.Recycling | |
|
|
Dock.Controls.Recycling.Model | |
|
|
Dock.MarkupExtension | |
|
|
Dock.Model | |
|
|
Dock.Model.Avalonia | |
|
|
Dock.Model.CaliburMicro | |
|
|
Dock.Model.Inpc | |
|
|
Dock.Model.Mvvm | |
|
|
Dock.Model.Prism | |
|
|
Dock.Model.ReactiveProperty | |
|
|
Dock.Model.ReactiveUI | |
|
|
Dock.Model.ReactiveUI.Services | |
|
|
Dock.Model.ReactiveUI.Services.Avalonia | |
|
|
Dock.Serializer.Newtonsoft | [
