GOZA.Dock
1.0.2
dotnet add package GOZA.Dock --version 1.0.2
NuGet\Install-Package GOZA.Dock -Version 1.0.2
<PackageReference Include="GOZA.Dock" Version="1.0.2" />
<PackageVersion Include="GOZA.Dock" Version="1.0.2" />
<PackageReference Include="GOZA.Dock" />
paket add GOZA.Dock --version 1.0.2
#r "nuget: GOZA.Dock, 1.0.2"
#:package GOZA.Dock@1.0.2
#addin nuget:?package=GOZA.Dock&version=1.0.2
#tool nuget:?package=GOZA.Dock&version=1.0.2
English | 简体中文
<p align="center"> <img src="src/GOZA.Dock/wwwroot/GOZA.png" alt="GOZA.Dock" width="320" /> </p>
GOZA.Dock
Lightweight docking layout for Avalonia — compose panels with Grid, DockRegion, and DockSplitter. Works on desktop and WebAssembly.
Features
- Flexible layout — any grid topology; no fixed quadrants or slot enums.
- Tab drag & drop — reorder in the strip, move across regions, double-click to maximize a region.
- Parking lot — optional view surface reuse by tab
Id(WebView, heavy controls). - Closable tabs —
IDockTabItem.IsClosable; optional Add Doc button on a region. - Side tab strips — vertical stacked headers on left/right strips (toggle globally or per region).
- Theme-friendly — include
DockShellStyles.axaml; override drag/drop brushes viaDockThemeResources. - MIT — no dependency on Semi, Crystal, or other UI stacks (Avalonia only).
Quick start
Run the minimal sample:
dotnet run --project samples/GOZA.Dock.Minimal.Desktop
Full demo (Crystal DI, layout save/load, closable docs): samples/GOZA.Dock.Demo.Desktop
Install the package (Avalonia 12.0.0+ required in your app):
dotnet add package GOZA.Dock --version 1.0.2
Minimal XAML:
<DockShell>
<Grid ColumnDefinitions="*,8,*">
<DockRegion Grid.Column="0"
ItemsSource="{Binding LeftTabs}"
SelectedItem="{Binding LeftSelected, Mode=TwoWay}" />
<DockSplitter Grid.Column="1" ShowsPreview="True" />
<DockRegion Grid.Column="2"
ItemsSource="{Binding RightTabs}"
SelectedItem="{Binding RightSelected, Mode=TwoWay}" />
</Grid>
</DockShell>
Include library styles in App.axaml:
<StyleInclude Source="avares://GOZA.Dock/Themes/DockShellStyles.axaml" />
Tab items implement IDockTabItem (Id, Header, optional ReuseSurface, IsClosable). Map each tab ViewModel to a view with DataTemplate or your DI/view locator.
Documentation & demos
| Resource | URL |
|---|---|
| Online docs | https://0use.net/GOZA.Dock/ |
| Browser demo (WASM) | https://0use.net/GOZA.Dock/demo/ |
| Release notes | docs/v1.0/release-notes.md |
| NuGet publish (maintainers) | PUBLISHING.md |
Build docs locally (requires DocFX):
docfx docfx.json && docfx serve _site --port 8080
Pushing to master triggers GitHub Pages (DocFX site + WASM demo).
Contributing
Issues and pull requests are welcome. Developer notes: DEVELOPMENT.md.
License
MIT — see LICENSE.txt.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Avalonia (>= 12.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Closable tabs, vertical side-tab headers, Add Doc chrome button, vector tab icons, drag-ghost fixes for left/right strips. Requires Avalonia 12.0.0. See docs/v1.0/release-notes.md.