Пример #1
0
        public override Size Measure(IFigure parent, SizeConstraint constraint)
        {
            if (!parent.Children.Any())
            {
                return(_emptyPreferredSize + _padding.Size);
            }

            var ret = new Size(0, _padding.Top);
            var clientAreaConstraint = constraint.Deflate(_padding.Size);

            foreach (var child in parent.Children)
            {
                if (child.IsVisible)
                {
                    child.Measure(clientAreaConstraint);
                    var prefSize = child.PreferredSize;
                    ret.Width   = Math.Max(prefSize.Width, ret.Width);
                    ret.Height += prefSize.Height + _itemSpace;
                }
            }

            ret.Width  += _padding.Width;
            ret.Height += _padding.Bottom - _itemSpace;
            return(constraint.MeasureConstrainedSize(ret));
        }