using System;
using System.Windows;
using System.Windows.Controls;

namespace HandyControl.Controls;

/// <summary>
///     用以代替Grid
/// </summary>
/// <remarks>
///     当不需要Grid的行、列分隔等功能时建议用此轻量级类代替
/// </remarks>
public class SimplePanel : Panel
{
    protected override Size MeasureOverride(Size constraint)
    {
        var maxSize = new Size();

        foreach (UIElement child in InternalChildren)
        {
            if (child != null)
            {
                child.Measure(constraint);
                maxSize.Width = Math.Max(maxSize.Width, child.DesiredSize.Width);
                maxSize.Height = Math.Max(maxSize.Height, child.DesiredSize.Height);
            }
        }

        return maxSize;
    }

    protected override Size ArrangeOverride(Size arrangeSize)
    {
        foreach (UIElement child in InternalChildren)
        {
            child?.Arrange(new Rect(arrangeSize));
        }

        return arrangeSize;
    }
}
