3

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 ...
      }
    }
PopMal
  • 51
  • 1
  • 6

1 Answers1

2

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);
}
Max Katz
  • 81
  • 2