From fa949af09691053c0033e0c2422cb2933642c5fb Mon Sep 17 00:00:00 2001 From: SKProCH Date: Thu, 26 Mar 2026 18:51:11 +0300 Subject: [PATCH] Make BoxShadow customizable via attached property Fixes #102 --- DialogHost.Avalonia/DialogHost.axaml | 3 ++- DialogHost.Avalonia/DialogHostStyle.cs | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/DialogHost.Avalonia/DialogHost.axaml b/DialogHost.Avalonia/DialogHost.axaml index 547df67..2616611 100644 --- a/DialogHost.Avalonia/DialogHost.axaml +++ b/DialogHost.Avalonia/DialogHost.axaml @@ -29,6 +29,7 @@ + @@ -56,7 +57,7 @@ BorderBrush="{Binding Path=(dialogHostAvalonia:DialogHostStyle.BorderBrush), RelativeSource={RelativeSource FindAncestor, AncestorType=dialogHostAvalonia:DialogHost}}" BorderThickness="{Binding Path=(dialogHostAvalonia:DialogHostStyle.BorderThickness), RelativeSource={RelativeSource FindAncestor, AncestorType=dialogHostAvalonia:DialogHost}}" CornerRadius="{Binding Path=(dialogHostAvalonia:DialogHostStyle.CornerRadius), RelativeSource={RelativeSource FindAncestor, AncestorType=dialogHostAvalonia:DialogHost}}" - BoxShadow="1.5 1.5 8 #4c000000" + BoxShadow="{Binding Path=(dialogHostAvalonia:DialogHostStyle.BoxShadow), RelativeSource={RelativeSource FindAncestor, AncestorType=dialogHostAvalonia:DialogHost}}" ClipToBounds="{Binding Path=(dialogHostAvalonia:DialogHostStyle.ClipToBounds), RelativeSource={RelativeSource FindAncestor, AncestorType=dialogHostAvalonia:DialogHost}}" Background="{Binding Path=Background, RelativeSource={RelativeSource FindAncestor, AncestorType=dialogHostAvalonia:DialogHost}}"> BorderThicknessProperty = AvaloniaProperty.RegisterAttached("BorderThickness", typeof(DialogHostStyle)); + /// + /// Controls BoxShadow DialogHost's popup background. + /// Works only for default DialogHost theme! + /// + public static readonly AttachedProperty BoxShadowProperty = + AvaloniaProperty.RegisterAttached("BoxShadow", typeof(DialogHostStyle)); + /// /// Get CornerRadius in DialogHost's popup background. /// Works only for default DialogHost theme! @@ -88,4 +95,22 @@ public static void SetBorderThickness(DialogHost element, Thickness value) { element.SetValue(BorderThicknessProperty, value); } + + /// + /// Get BoxShadow in DialogHost's popup background. + /// Works only for default DialogHost theme! + /// + public static BoxShadows GetBoxShadow(DialogHost element) + { + return element.GetValue(BoxShadowProperty); + } + + /// + /// Set BoxShadow in DialogHost's popup background. + /// Works only for default DialogHost theme! + /// + public static void SetBoxShadow(DialogHost element, BoxShadows value) + { + element.SetValue(BoxShadowProperty, value); + } } \ No newline at end of file