Analogous to the abstract Adorner (wpf) class in Avalonia UI?

Viewed 292

If in WPF a decorative element is implemented using the abstract class Adorner, then how to achieve the implementation of this object in Avalonia UI?

    //code wpf
    public class ControlAdorner: Adorner
    {
      public ControlAdorner(UIElement adornedElement) : base(adornedElement)
      {
      }
    
      protected override void OnRender(DrawingContext drawingContext)
      {
        Rect adornedElementRect = new Rect(this.AdornedElement.DesiredSize);
        
        ... some code ...
      }
    }
1 Answers

There is AdornerLayer class with attached property AdornedElement. I haven't tested code below, but it should work.

var adornerElement = yourElement;
var adornerLayer = AdornerLayer.GetAdornerLayer(adornerElement);

if (adornerLayer != null)
{
    var adornedElement = new Border();
    adornerLayer.Children.Add(adornedElement);
    AdornerLayer.SetAdornedElement(adornedElement, adornerElement);
}
Related