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

namespace CustomPanels
{
    public class UselessPanel : Panel
    {
        protected override Size MeasureOverride(Size availableSize)
        {

            //double totalWidth = 0;
            //double totalHeight = 0;
            foreach (UIElement child in Children)
            {
                //każdemu dziecku przyznawany jest największy możliwy rozmiar
                child.Measure(new Size(double.PositiveInfinity,
                double.PositiveInfinity));
                Console.WriteLine("[Pomiary] " + child.DesiredSize);
            }
            // rodzic potrzebuje zawsze stałego rozmiaru 10x20
            return new Size(10, 20);
        }
        protected override Size ArrangeOverride(Size finalSize)
        {
            //struktura do przechowywania pozcji ułożenia elementu
            Point currentPosition = new Point();

            foreach (UIElement child in Children)
            {
                currentPosition.X += 1;
                currentPosition.Y += 1;
                Rect childRect = new Rect(currentPosition, child.DesiredSize);
                child.Arrange(childRect);
               // currentPosition.Offset(childRect.Width, childRect.Height);
            }
            Console.WriteLine("[Aranżacja] " + finalSize);
            //rodzic zostanie zaaranżowany ze stałym rozmiarem 30x30
            return new Size(30, 60);
        }
    }
}