2

如果在 WPF 中使用抽象类Adorner实现了一个装饰元素,那么如何在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 ...
      }
    }
4

1 回答 1

1

有带有附加属性 AdornedElement 的 AdornerLayer 类。我没有测试下面的代码,但它应该可以工作。

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

if (adornerLayer != null)
{
    var adornedElement = new Border();
    adornerLayer.Children.Add(adornedElement);
    AdornerLayer.SetAdornedElement(adornedElement, adornerElement);
}
于 2020-08-31T00:33:20.903 回答