LayoutTestControl.cs 950 B

123456789101112131415161718192021222324252627282930
  1. using System;
  2. using Avalonia.Controls;
  3. using Avalonia.Layout;
  4. namespace Avalonia.Base.UnitTests.Layout
  5. {
  6. internal class LayoutTestControl : Decorator
  7. {
  8. public bool Measured { get; set; }
  9. public bool Arranged { get; set; }
  10. public Func<ILayoutable, Size, Size> DoMeasureOverride { get; set; }
  11. public Func<ILayoutable, Size, Size> DoArrangeOverride { get; set; }
  12. protected override Size MeasureOverride(Size availableSize)
  13. {
  14. Measured = true;
  15. return DoMeasureOverride != null ?
  16. DoMeasureOverride(this, availableSize) :
  17. base.MeasureOverride(availableSize);
  18. }
  19. protected override Size ArrangeOverride(Size finalSize)
  20. {
  21. Arranged = true;
  22. return DoArrangeOverride != null ?
  23. DoArrangeOverride(this, finalSize) :
  24. base.ArrangeOverride(finalSize);
  25. }
  26. }
  27. }