Repository navigation
Releases
v5.0.1
What's Changed
- docs: fix internal links 404ing by prefixing baseurl by @sharpSteff in #639
- [Fix] #647 - [FloatingWindow] Fixed edge flickering while resizing floating windows without regressing #345 by @sharpSteff in #648
- increment version by @sharpSteff in #649
- Bump NUnit.Analyzers from 4.13.0 to 4.14.0 by @dependabot[bot] in #644
- Bump NUnit3TestAdapter from 6.2.0 to 6.3.0 by @dependabot[bot] in #650
- Fix floating window region corner radius by @Avlaak in #657
- Additional null checks in AutoHideWindowManager by @bbuerger in #658
- Add check for readonly to prevent InvalidOperationException by @bbuerger in #659
- Bump System.Text.Json from 10.0.10 to 10.0.12 by @dependabot[bot] in #656
- Bump Microsoft.Extensions.DependencyInjection.Abstractions from 10.0.10 to 10.0.12 by @dependabot[bot] in #653
- Bump Microsoft.Extensions.DependencyInjection from 10.0.10 to 10.0.12 by @dependabot[bot] in #660
- Bump Microsoft.NET.Test.Sdk from 18.8.1 to 18.10.0 by @dependabot[bot] in #654
- Bump Microsoft.Extensions.DependencyInjection from 10.0.10 to 10.0.12 by @dependabot[bot] in #661
New Contributors
Full Changelog: v5.0.0...v5.0.1
What's Changed
- docs: fix internal links 404ing by prefixing baseurl by @sharpSteff in #639
- [Fix] #647 - [FloatingWindow] Fixed edge flickering while resizing floating windows without regressing #345 by @sharpSteff in #648
- increment version by @sharpSteff in #649
- Bump NUnit.Analyzers from 4.13.0 to 4.14.0 by @dependabot[bot] in #644
- Bump NUnit3TestAdapter from 6.2.0 to 6.3.0 by @dependabot[bot] in #650
- Fix floating window region corner radius by @Avlaak in #657
- Additional null checks in AutoHideWindowManager by @bbuerger in #658
- Add check for readonly to prevent InvalidOperationException by @bbuerger in #659
- Bump System.Text.Json from 10.0.10 to 10.0.12 by @dependabot[bot] in #656
- Bump Microsoft.Extensions.DependencyInjection.Abstractions from 10.0.10 to 10.0.12 by @dependabot[bot] in #653
- Bump Microsoft.Extensions.DependencyInjection from 10.0.10 to 10.0.12 by @dependabot[bot] in #660
- Bump Microsoft.NET.Test.Sdk from 18.8.1 to 18.10.0 by @dependabot[bot] in #654
- Bump Microsoft.Extensions.DependencyInjection from 10.0.10 to 10.0.12 by @dependabot[bot] in #661
New Contributors
Full Changelog: v5.0.0...v5.0.1
v5.0.0
AvalonDock v5.0.0
The first major release of AvalonDock in years. v5 modernizes the core of the library: serialization is no longer tied to IXmlSerializable, dependency injection got a proper builder API, the theme stack understands current Visual Studio theme formats, and floating window handling was reworked from the ground up.
If you are coming from v4.74.x, please read the Breaking changes section first — most upgrades are a handful of lines, but a few are not source-compatible.
⚠️ Breaking changes
Serialization is now DTO-based
The layout serialization stack was rewritten around plain data transfer objects. IXmlSerializable implementations were removed from the layout model, which means:
- Layout persistence is no longer hard-wired to
XmlSerializer. Any serializer can be plugged in — XML and JSON ship out of the box. - Custom code that relied on the layout elements implementing
IXmlSerializable, or that hooked into the old read/write methods, needs to move to the DTO layer. - Reading existing v4 layout files keeps working: the XML deserializer was made deliberately tolerant of legacy formats (#607, #613). Files written by v5 are not guaranteed to load in v4.
Package layout and naming
NuGet package naming and the package set were reworked (#570, #574, #583). Themes and serializers are shipped as separate packages — check your PackageReference entries rather than assuming the v4 names still resolve.
Public API cleanup
Obsolete and inconsistent members were removed or renamed across the v5 line (#567, #581, #625). Most fixes are a rename; the compiler will point you at all of them.
Highlights
Serialization
- Full DTO-based serialization stack, serializer-agnostic by design (#580)
System.Text.Jsonimplementation with round-trip tests (#624)- Tolerant XML deserialization for legacy layout files (#607, #613)
- Fixed the
XmlSerializer"file not found" failure on .NET 6+ — thanks @KlaskSkovby (#606) - Substantially expanded XML serialization test coverage (#586)
Themes
- New VS2022 theme (#582)
- VS2026 JSON theme support (#597)
- Support for gzipped
.vsthemefiles inAvalonDock.Themes.VS, with VS2013 migrated onto the same infrastructure (#572) - Dedicated VS theme package (#583)
- Docking hints render again in the Expression theme (#494, #634)
IconSourceis now shown on document tabs (#483, #635)- The sidebar toggle picks up its colours from the auto-hide tab brushes instead of hard-coded values (#636)
Floating windows
This area saw the most behavioural work in v5:
- Undock as a real window — new option to detach content into an actual top-level window rather than a floating overlay (#621)
- Floating window ownership is deferred until the hosting window is actually shown, fixing z-order and startup issues (#618, #620) and set during
Loaded— thanks @bbuerger (#608) - Inheritable dependency properties now propagate into floating windows (#615, #616)
- The system close button routes through
HideWindowCommandfor floating anchorables — thanks @xoma-zver (#368, #610) - Drag overlay windows no longer pile up during repeated drag operations (#587, #632)
- Ghost tool windows after undocking are gone (#622)
- Entering float mode through the context menu options works again (#589)
- New switches on
DockingManagerto disable floating and/or window creation entirely (#637)
Keyboard and input
- Keyboard shortcuts for toggling toolboxes (#592), with the shortcut surfaced in the tooltip when one is assigned (#595)
- Option to ignore the
TabControlkey bindings so inner elements can handle their own shortcuts — thanks @Rijno (#508)
Layout and docking behaviour
- Stable pane insertion order for
DocumentPaneDockRight/DocumentPaneDockBottom— thanks @john-lemon7 (#556) - Anchorable alignment fixed for the classic
DockingManagerdriven via MVVMDockLayout(#578) ContentDocking/ContentDockednow fire when re-docking via drag and drop (#601)- Correct logical children order (#614, #617)
- A
CanClosestyle setter now wins over the inherited default (#505, #633) IToolbox.IsOpenis honoured when set before load (#631)- Multiple interaction and styling fixes in the navigator — thanks @LyonJack (#598)
- General robustness fixes found during production use of v5 (#605)
- Pattern matching / index validation hardening — thanks @bbuerger (#554)
Documentation
The docs are a first-class part of v5:
- New tutorials covering MVVM, dependency injection, styling and layout persistence (#562)
- README rewritten for v5 (#563, #569, #603)
- API documentation generation enabled and published (#577), with deployment fixes (#573, #579)
- License information simplified (#571)
- NuGet package table corrected and completed (#568, #570)
Build, CI and dependencies
- CI/CD reworked so that support releases for older lines (v4) can still be published from the same pipeline (#593)
- FlaUI UI test stabilized around the detach gesture in the layout round-trip test (#638)
- Test app styling fixed (#588)
- Sonar analyzers pinned to avoid new analyzers appearing on minor version bumps (#611)
- Dependency updates:
Microsoft.Extensions.DependencyInjectionand.Abstractions9.0.0 → 10.0.10,Microsoft.NET.Test.Sdk18.4.0 → 18.8.1,NUnit4.5.1 → 4.6.1,NUnit.Analyzers4.12.0 → 4.13.0,Microsoft.CodeAnalysis.Metrics4.14.0 → 5.6.0, plus GitHub Actions bumps
Upgrading from v4
- Update your
PackageReferenceentries — the package set changed, and themes/serializers are separate packages. - If you registered the layout service through DI, switch
AddDockLayoutServiceto the new builder API. - If you implemented custom serialization against
IXmlSerializable, move to the DTO layer. - Rebuild and follow the compiler errors for the API cleanup renames.
- Existing layout files should load unchanged. Please open an issue if one does not — legacy compatibility is something we want to keep.
New Contributors
- @john-lemon7 made their first contribution in #556
- @KlaskSkovby made their first contribution in #606
- @Rijno made their first contribution in #508
Thanks to everyone who reported issues, tested pre-release builds and sent PRs.
Full Changelog: v4.74.1...v5.0.0
What's Changed
- Use is pattern and check for valid index by @bbuerger in #554
- Bump Microsoft.NET.Test.Sdk from 18.4.0 to 18.5.1 by @dependabot[bot] in #555
- fix: Ensure stable pane insertion order for DocumentPaneDockRight/Bottom by @john-lemon7 in #556
- Bump NUnit from 4.5.1 to 4.6.0 by @dependabot[bot] in #557
- Bump NUnit.Analyzers from 4.12.0 to 4.13.0 by @dependabot[bot] in #558
- docs: add tutorials for MVVM, DI, styling, and layout persistence by @sharpSteff with @Copilot in #562
- Rewrite README.md for v5.0.0 by @sharpSteff with @Copilot in #563
- Bump NUnit from 4.6.0 to 4.6.1 by @dependabot[bot] in #561
- Bump Microsoft.NET.Test.Sdk from 18.5.1 to 18.6.0 by @dependabot[bot] in #565
- V5.0.0 by @sharpSteff in #564
- Cleanup v5 by @sharpSteff in #567
- fix nuget table and cleanup docs by @sharpSteff in #568
- update_readme by @sharpSteff in #569
- add missing nugets by @sharpSteff in #570
- simplify_license by @sharpSteff in #571
- fix docs deploy by @sharpSteff in #573
- Add gz .vstheme support to Themes.VS; migrate VS2013 onto it by @sharpSteff in #572
- fix nuget package naming by @sharpSteff in #574
- enable doc generation by @sharpSteff in #577
- Bump actions/upload-pages-artifact from 3 to 5 by @dependabot[bot] in #575
- Fix anchorables allignment for classic dockingManager via MVVM DockLayout by @sharpSteff in #578
- fix docs link by @sharpSteff in #579
- #560 [Refactor] Refactor Serialization stack to DTO-based and remove IXmlSerializable to allow any serializer (xml, json, etc) by @sharpSteff in #580
- Cleanup by @sharpSteff in #581
- Add VS2022 Theme by @sharpSteff in #582
- Add VS package by @sharpSteff in #583
- [Refactor] Refactor DI to builder pattern for AddDockLayoutService by @sharpSteff in #584
- add xml tests by @sharpSteff in #586
- fix-test-app-styling by @sharpSteff in #588
- [Fix] Fixed an issue where entering float mode via options did not work by @sharpSteff in #589
- Bump actions/configure-pages from 5 to 6 by @dependabot[bot] in ht...
v4.74.1
What's Changed
- Fix #551 by @sharpSteff in #552
- Improve Window border Styling on Arc-Dark-Theme by @sharpSteff in #553
Full Changelog: v4.74.0...v4.74.1
v4.74.0
What's Changed
- Removed the check for non-floating content by @fredriks123 in #451
- Bump FlaUI.Core from 4.0.0 to 5.0.0 by @dependabot[bot] in #534
- Bump FlaUI.UIA3 from 4.0.0 to 5.0.0 by @dependabot[bot] in #535
- Bump Microsoft.NET.Test.Sdk from 18.3.0 to 18.4.0 by @dependabot[bot] in #536
- Removed call to CaptureMouse from LayoutFloatingWindowControl. by @juyanith in #459
- Add Arc (Light/Dark) theme and modernize README by @sharpSteff in #537
- Update README.md by @sharpSteff in #539
- increment version by @sharpSteff in #540
- Backport bug fixes from Xceed upstream (v4.2–v5.0) by @sharpSteff in #541
- Add customizable labels to NavigatorWindow by @sharpSteff in #543
- Add AllowMovingFloatingWindowWithKeyboard property by @sharpSteff in #542
- Add ResizeBorderThickness property to floating windows by @sharpSteff in #544
- Add Float/Dock lifecycle events to DockingManager by @sharpSteff in #545
- Fixed crash in DockingManager.OnSizeChanged if layout hasn't been loaded by @fredriks123 in #547
- Bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #548
Full Changelog: v4.73.0...v4.74.0
v4.73.0
What's Changed
- Add GitHub Actions CI/CD + .NET 9/10 support by @sharpSteff in #517
- fix: add dotnet pack commands to release workflow by @sharpSteff in #525
- Bump Microsoft.NET.Test.Sdk from 17.8.0 to 18.3.0 by @dependabot[bot] in #522
- Bump Microsoft.CodeAnalysis.Metrics from 3.3.4 to 4.14.0 by @dependabot[bot] in #521
- Bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #519
- Additional Null-Check in TransformToDeviceDPI by @bbuerger in #462
- Update README.md by @Suplanus in #449
- Added additional NullChecks in OnClosed LayoutAnchorableFloatingWindowControls.cs by @bbuerger in #452
- Bump NUnit from 3.14.0 to 4.5.1 by @dependabot[bot] in #523
- Bump actions/checkout from 4 to 6 by @dependabot[bot] in #520
- Bump NUnit3TestAdapter from 4.5.0 to 6.2.0 by @dependabot[bot] in #526
- Bump actions/setup-dotnet from 4 to 5 by @dependabot[bot] in #518
- Add NuGet package tags (WPF, avalondock, docking, layout, MVVM) by @Copilot in #527
- #511 Fix Nullref in LayoutDocumentTabItem.OnMouseLeftButtonDown by @sharpSteff in #512
- Bump NUnit.Analyzers from 3.9.0 to 4.12.0 by @dependabot[bot] in #524
- Adjust GetSide to allow for multiple anchorable panes on the left or top by @mpondo in #486
- Support custom style for LayoutAutoHideWindowControl's inner Grid by @scasteran-jw in #498
- Improved Styling and Resizing Options for Floating Windows by @xoma-zver in #469
- [CI/CD] Add automated UI Tests by @sharpSteff in #529
- Do not add FloatingWindow to _fwList a second time in OnLayoutChanged. by @juyanith in #457
- Fix issue 489 - Changed layout restoration logic to set WindowState directly after Show and within the same scope by @TheBobFella in #490
- Add static code checks by @sharpSteff in #530
- Skip mouse events of unloaded controls by @Khaos66 in #454
- Split UI test and normal Unit tests by @sharpSteff in #531
- Unlist preview packages on release by @sharpSteff in #532
- fix release version arguments and stabilize UI Tests by @sharpSteff in #533
New Contributors
- @sharpSteff made their first contribution in #517
- @dependabot[bot] made their first contribution in #522
- @Suplanus made their first contribution in #449
- @scasteran-jw made their first contribution in #498
- @xoma-zver made their first contribution in #469
- @juyanith made their first contribution in #457
- @TheBobFella made their first contribution in #490
Full Changelog: v4.72.1...v4.73.0
AvalonDock Version 4.72.1
AvalonDock Version 4.72.0
Fixes and Features Added in Version 4.72.0
-
#423 issue #422 DockingManager.LayoutItemTemplateSelector is applied twice because... (thanx to Mona04)
-
#425 Fix: Potential NRE on app close (thanx to Khaos66)
-
#427 Fix floating windows still created twice (thanx to Khaos66)
-
Add DockingManager.ShowNavigator (thanx to Calum Robinson)
-
#431 Fix unwanted group orientation change when using mixed orientation (thanx to KuroiRoy)
AvalonDock Version 4.71.2
Fixes Added in Version 4.71.2
-
#416 Fix Issue #226: Restore floating windows to maximized state (thanx to Michael Möller)
-
#417 Close and active selected item when NavigatorWindow is inactive (thanx to EQOH Noisrev)
-
#418 Add active content handler to LayoutAnchorableFloatingWindow and improve the active content handlers (thanx to EQOH Noisrev)
AvalonDock Version 4.71.1
AvalonDock Version 4.71.0
-
#399 add open/close LayoutFlayoutingWindowsControl events (thanx to Denis Smirnov)
-
#400 set ResizeOverlay's owner always null (thanx to Denis Smirnov)
-
#401 remove unused variable from DocumentPaneTabPanel (thanx to Denis Smirnov)
-
#403 Add XmlSerializer cache to fix memory leaks. (thanx to Pavel Kindruk)
-
#404 Fix deserialized layout document close. (thanx to Pavel Kindruk)
-
#409 Restore previously activated document after closing active document (thanx to L45eMy)
-
#410 Improved activation of floating Windows (thanx to EQOH Noisrev)
-
#411 Add anchorable hide and close notifications to DockingManager (thanx to John Stewien)
-
#412 Fix a issue where the dragged window still appeared above the overlay window (thanx to EQOH Noisrev)