From 4120f59c9046ef67572fe39907f4b084e07a0acc Mon Sep 17 00:00:00 2001 From: Dong Bin Date: Mon, 14 Apr 2025 01:21:20 +0800 Subject: [PATCH] feat: use multibinding for TreeViewItem indentation. --- src/Semi.Avalonia/Controls/TreeView.axaml | 28 +++++++++---------- .../Converters/TreeViewItemIndentConverter.cs | 25 +++++++++++++++++ 2 files changed, 39 insertions(+), 14 deletions(-) create mode 100644 src/Semi.Avalonia/Converters/TreeViewItemIndentConverter.cs diff --git a/src/Semi.Avalonia/Controls/TreeView.axaml b/src/Semi.Avalonia/Controls/TreeView.axaml index 43eae95..5d04527 100644 --- a/src/Semi.Avalonia/Controls/TreeView.axaml +++ b/src/Semi.Avalonia/Controls/TreeView.axaml @@ -1,7 +1,7 @@ @@ -40,8 +40,8 @@ AllowAutoHide="{TemplateBinding (ScrollViewer.AllowAutoHide)}" Background="{TemplateBinding Background}" HorizontalScrollBarVisibility="{TemplateBinding (ScrollViewer.HorizontalScrollBarVisibility)}" - IsScrollChainingEnabled="{TemplateBinding (ScrollViewer.IsScrollChainingEnabled)}" IsDeferredScrollingEnabled="{TemplateBinding (ScrollViewer.IsDeferredScrollingEnabled)}" + IsScrollChainingEnabled="{TemplateBinding (ScrollViewer.IsScrollChainingEnabled)}" VerticalScrollBarVisibility="{TemplateBinding (ScrollViewer.VerticalScrollBarVisibility)}"> - - + @@ -71,10 +67,10 @@ Background="Transparent"> + Foreground="{DynamicResource TreeViewItemIconDefaultForeground}" + Theme="{StaticResource InnerPathIcon}"> @@ -110,16 +106,20 @@ CornerRadius="{TemplateBinding CornerRadius}" Focusable="True" TemplatedControl.IsTemplateFocusTarget="True"> - + + + + + + + values, Type targetType, object? parameter, CultureInfo culture) + { + if (values[0] is int level && values[1] is double indent) + { + return new Thickness( + indent * level, + 0, + 0, + 0); + } + return new Thickness(0); + } +} \ No newline at end of file