Xtreme.Components.Docking 0.1.0-preview.4

This is a prerelease version of Xtreme.Components.Docking.
dotnet add package Xtreme.Components.Docking --version 0.1.0-preview.4
                    
NuGet\Install-Package Xtreme.Components.Docking -Version 0.1.0-preview.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Xtreme.Components.Docking" Version="0.1.0-preview.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Xtreme.Components.Docking" Version="0.1.0-preview.4" />
                    
Directory.Packages.props
<PackageReference Include="Xtreme.Components.Docking" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Xtreme.Components.Docking --version 0.1.0-preview.4
                    
#r "nuget: Xtreme.Components.Docking, 0.1.0-preview.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Xtreme.Components.Docking@0.1.0-preview.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Xtreme.Components.Docking&version=0.1.0-preview.4&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Xtreme.Components.Docking&version=0.1.0-preview.4&prerelease
                    
Install as a Cake Tool

Xtreme.Components.Docking

An IDE-style dock manager for Uno Platform, built from WinUI primitives only. Part of Xtreme.Components.

Full guide: docs/docking.md covers every option with samples.

Features

  • Center document + edge panes. DockItems dock to any edge; each edge holds layers stacked outward and slots side by side within a layer, with tab groups anywhere.
  • Drag with guides. Header and tab drags show edge markers and a document compass (inner and outer bands, insert before/after, tab into), with a shaded landing preview.
  • Auto-hide. Pushpin collapses a pane to its edge rail; the flyout slides fully in and out. Below a configurable width panes auto-unpin (DockNarrowBehavior.AutoHide).
  • Float to an OS window. On Windows desktop a pane tears out into a real window and drags back to re-dock; elsewhere (WASM, mobile, macOS, Linux) it stays in-surface. All of it goes through IDockPlatformServices. Win32DockPlatformServices is the shipped Windows implementation (window pool, owned windows, drag tracking, drag translucency), runtime-guarded so the same assembly runs everywhere; without it the host is docked-only.
  • Persistence. The whole layout (edges, layers, tab groups and their selected tab, ratios, pinned/open state, floating windows and their bounds) is a versioned document saved through IDockPersistence; closes are saved too, and the store can be assigned at any time.
  • Theme-aware. Follows ActualTheme live; high-contrast palettes override through the Xc* keys in Xtreme.Components.Core.

Quick start

<Page xmlns:dock="using:Xtreme.Components.Docking.Controls">
  <dock:DockHost PersistenceKey="Main">
    <dock:DockHost.Document>
      <TextBox AcceptsReturn="True" />
    </dock:DockHost.Document>
    <dock:DockItem Title="Explorer" Edge="Left" AllowFloat="True">
      <TreeView />
    </dock:DockItem>
    <dock:DockItem Title="Properties" Edge="Right">
      <ListView />
    </dock:DockItem>
  </dock:DockHost>
</Page>

Optional seams, each with a no-op default:

Seam Interface What the app supplies
Layout persistence IDockPersistence Load/save the layout document (local settings, a server, nothing)
OS windows IDockPlatformServices Create and track floating windows, window pool, drag tracking

Set them on the host: DockHost.Persistence and DockHost.PlatformServices.

// App.OnLaunched, once the main window exists:
var platform = new Win32DockPlatformServices { HostWindow = MainWindow };
host.PlatformServices = platform;
platform.CaptureShellWindowHandle(MainWindow.DispatcherQueue);   // owned float windows
platform.PrimePoolWhenIdle(MainWindow.DispatcherQueue);          // pre-built windows, off the click

Targets net10.0 only; the consuming Uno head supplies the renderer. MIT license.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Xtreme.Components.Docking:

Package Downloads
Xtreme.Components

Every Xtreme.Components family in one reference: Core, Primitives, Scheduler, Docking, Cards and TableView. App-agnostic, primitive-only Uno Platform controls for Desktop, Android, iOS and WebAssembly.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-preview.4 89 10/15/2026
0.1.0-preview.3 61 10/14/2026
0.1.0-preview.2 66 10/14/2026
0.1.0-preview.1 51 10/14/2026