|
|
@@ -20,6 +20,12 @@ namespace Avalonia.Controls.Primitives
|
|
|
public static readonly StyledProperty<Transform?> TransformProperty =
|
|
|
AvaloniaProperty.Register<PopupRoot, Transform?>(nameof(Transform));
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// Defines the <see cref="WindowManagerAddShadowHint"/> property.
|
|
|
+ /// </summary>
|
|
|
+ public static readonly StyledProperty<bool> WindowManagerAddShadowHintProperty =
|
|
|
+ Popup.WindowManagerAddShadowHintProperty.AddOwner<PopupRoot>();
|
|
|
+
|
|
|
private PopupPositionerParameters _positionerParameters;
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -50,6 +56,7 @@ namespace Avalonia.Controls.Primitives
|
|
|
: base(impl, dependencyResolver)
|
|
|
{
|
|
|
ParentTopLevel = parent;
|
|
|
+ impl.SetWindowManagerAddShadowHint(WindowManagerAddShadowHint);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -66,6 +73,15 @@ namespace Avalonia.Controls.Primitives
|
|
|
set => SetValue(TransformProperty, value);
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// Gets or sets a hint to the window manager that a shadow should be added to the popup.
|
|
|
+ /// </summary>
|
|
|
+ public bool WindowManagerAddShadowHint
|
|
|
+ {
|
|
|
+ get => GetValue(WindowManagerAddShadowHintProperty);
|
|
|
+ set => SetValue(WindowManagerAddShadowHintProperty, value);
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// Gets the parent control in the event route.
|
|
|
/// </summary>
|
|
|
@@ -179,5 +195,15 @@ namespace Avalonia.Controls.Primitives
|
|
|
{
|
|
|
return new PopupRootAutomationPeer(this);
|
|
|
}
|
|
|
+
|
|
|
+ protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)
|
|
|
+ {
|
|
|
+ base.OnPropertyChanged(change);
|
|
|
+
|
|
|
+ if (change.Property == WindowManagerAddShadowHintProperty)
|
|
|
+ {
|
|
|
+ PlatformImpl?.SetWindowManagerAddShadowHint(change.GetNewValue<bool>());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|