From 0efe0418540bf08887663d0c3052db456eb76e03 Mon Sep 17 00:00:00 2001 From: Petar Tasev Date: Fri, 23 Jan 2026 14:30:43 -0800 Subject: [PATCH 1/2] Bring header presenter into view, and size to auto --- src/Avalonia.Controls/TreeViewItem.cs | 15 ++++++--------- .../Controls/TreeViewItem.xaml | 2 +- .../Controls/TreeViewItem.xaml | 2 +- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/Avalonia.Controls/TreeViewItem.cs b/src/Avalonia.Controls/TreeViewItem.cs index ec1e943da0..3c4d52fdb9 100644 --- a/src/Avalonia.Controls/TreeViewItem.cs +++ b/src/Avalonia.Controls/TreeViewItem.cs @@ -191,16 +191,13 @@ namespace Avalonia.Controls return; } - if (_header != null) + var header = _headerPresenter ?? _header; + var m = header?.TransformToVisual(this); + if (m.HasValue) { - var m = _header.TransformToVisual(this); - - if (m.HasValue) - { - var bounds = new Rect(_header.Bounds.Size); - var rect = bounds.TransformToAABB(m.Value); - e.TargetRect = rect; - } + var bounds = new Rect(header.Bounds.Size); + var rect = bounds.TransformToAABB(m.Value); + e.TargetRect = rect; } } } diff --git a/src/Avalonia.Themes.Fluent/Controls/TreeViewItem.xaml b/src/Avalonia.Themes.Fluent/Controls/TreeViewItem.xaml index a1b22528c9..e242c0988d 100644 --- a/src/Avalonia.Themes.Fluent/Controls/TreeViewItem.xaml +++ b/src/Avalonia.Themes.Fluent/Controls/TreeViewItem.xaml @@ -73,7 +73,7 @@ MinHeight="{TemplateBinding MinHeight}" TemplatedControl.IsTemplateFocusTarget="True"> + ColumnDefinitions="Auto, Auto"> diff --git a/src/Avalonia.Themes.Simple/Controls/TreeViewItem.xaml b/src/Avalonia.Themes.Simple/Controls/TreeViewItem.xaml index b16e69d4c9..1513166dfa 100644 --- a/src/Avalonia.Themes.Simple/Controls/TreeViewItem.xaml +++ b/src/Avalonia.Themes.Simple/Controls/TreeViewItem.xaml @@ -43,7 +43,7 @@ Focusable="True" TemplatedControl.IsTemplateFocusTarget="True"> + ColumnDefinitions="16, Auto"> From 303bd0a015994ca115f5a29f481816d8cc9f61a6 Mon Sep 17 00:00:00 2001 From: Petar Tasev Date: Fri, 23 Jan 2026 14:56:31 -0800 Subject: [PATCH 2/2] Fix null annotation --- src/Avalonia.Controls/TreeViewItem.cs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/Avalonia.Controls/TreeViewItem.cs b/src/Avalonia.Controls/TreeViewItem.cs index 3c4d52fdb9..8ef0131b19 100644 --- a/src/Avalonia.Controls/TreeViewItem.cs +++ b/src/Avalonia.Controls/TreeViewItem.cs @@ -192,12 +192,16 @@ namespace Avalonia.Controls } var header = _headerPresenter ?? _header; - var m = header?.TransformToVisual(this); - if (m.HasValue) + if (header is not null) { - var bounds = new Rect(header.Bounds.Size); - var rect = bounds.TransformToAABB(m.Value); - e.TargetRect = rect; + var m = header.TransformToVisual(this); + + if (m.HasValue) + { + var bounds = new Rect(header.Bounds.Size); + var rect = bounds.TransformToAABB(m.Value); + e.TargetRect = rect; + } } } }