diff --git a/src/Avalonia.Controls/Chrome/CaptionButtons.cs b/src/Avalonia.Controls/Chrome/CaptionButtons.cs index 75d6c366b8..a86cbc271b 100644 --- a/src/Avalonia.Controls/Chrome/CaptionButtons.cs +++ b/src/Avalonia.Controls/Chrome/CaptionButtons.cs @@ -38,12 +38,10 @@ namespace Avalonia.Controls.Chrome { if (_disposables != null) { - var layer = ChromeOverlayLayer.GetOverlayLayer(_hostWindow); - - layer?.Children.Remove(this); - _disposables.Dispose(); _disposables = null; + + _hostWindow = null; } } diff --git a/src/Avalonia.Controls/Chrome/TitleBar.cs b/src/Avalonia.Controls/Chrome/TitleBar.cs index 3061e0a06b..c0c8076dd8 100644 --- a/src/Avalonia.Controls/Chrome/TitleBar.cs +++ b/src/Avalonia.Controls/Chrome/TitleBar.cs @@ -42,6 +42,8 @@ namespace Avalonia.Controls.Chrome { base.OnApplyTemplate(e); + _captionButtons?.Detach(); + _captionButtons = e.NameScope.Get("PART_CaptionButtons"); if (VisualRoot is Window window) @@ -87,6 +89,9 @@ namespace Avalonia.Controls.Chrome base.OnDetachedFromVisualTree(e); _disposables?.Dispose(); + + _captionButtons?.Detach(); + _captionButtons = null; } } }