sw.Size MeasureChildren(sw.Size constraint) { var size = new sw.Size(); foreach (sw.UIElement control in Children) { control.Measure(constraint); var preferredSize = control.DesiredSize; var left = GetLeft(control) + preferredSize.Width; var top = GetTop(control) + preferredSize.Height; if (size.Width < left) { size.Width = left; } if (size.Height < top) { size.Height = top; } } return(size.Min(constraint.InfinityIfNan())); }