LayoutTestControl.cs 922 B

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