Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
D

Dock

> 前端框架
Open source

A docking layout system.

1.4K stars0 likes0 views
WebsiteGitHub

About

A docking layout system.

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:

NuGet Package Downloads
Dock.Avalonia
Dock.Avalonia.Diagnostics
Dock.Avalonia.Themes.Fluent
Dock.Avalonia.Themes.Browser
Dock.Avalonia.Themes.Simple
Dock.Controls.DeferredContentControl
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.Model.ReactiveUI.Reactive
Dock.Model.ReactiveUI.Services.Reactive
Dock.Model.ReactiveUI.Services.Avalonia.Reactive
Dock.Serializer.Newtonsoft
Dock.Serializer.Protobuf
Dock.Serializer.SystemTextJson
Dock.Serializer.Xml
Dock.Serializer.Yaml
Dock.Settings

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.20, 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.

Issues· 2 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C#avaloniaavaloniauicontroldock

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category前端框架
PricingOpen source

> Related tools

R
React
用于构建用户界面的 JavaScript 库
V
Vue.js
渐进式 JavaScript 框架
N
Next.js
基于 React 的全栈 Web 框架