A docking layout system.
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
- 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
First, clone the repository or download the latest zip.
git clone https://github.com/wieslawsoltes/Dock.git
Open up a terminal prompt and execute the commands.
Target frameworks: netstandard2.0, net6.0, net8.0, net10.0 for libraries and samples:
dotnet build src/Dock.Avalonia/Dock.Avalonia.csproj -c Release -f netstandard2.0Alternatively 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 WindowsDock 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.FluentAvailable NuGet 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-textInstall 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-
Sample applications can be found under the samples directory which illustrate each approach in a working project:
DockXamlSample- XAML layouts with ItemsSource examplesDockMvvmSample- Full MVVM implementationDockReactiveUISample- ReactiveUI patternsDockOfficeSample- Office-style workspaces with ReactiveUI navigationDockCodeOnlySample- Pure C# layoutsNotepad- Real-world text editor exampleVisualStudioDemo- Visual Studio-like interface- And many more specialized examples
Dock is licensed under the MIT license.