public Size Measure(double widthConstraint, double heightConstraint) { double measuredHeight = 0; double measuredWidth = 0; FlexLayout.Layout(widthConstraint, heightConstraint); foreach (var child in FlexLayout) { if (child.Visibility == Visibility.Collapsed) { continue; } var frame = FlexLayout.GetFlexFrame(child); measuredHeight = Math.Max(measuredHeight, frame.Bottom); measuredWidth = Math.Max(measuredWidth, frame.Right); } var finalHeight = LayoutManager.ResolveConstraints(heightConstraint, FlexLayout.Height, measuredHeight, FlexLayout.MinimumHeight, FlexLayout.MaximumHeight); var finalWidth = LayoutManager.ResolveConstraints(widthConstraint, FlexLayout.Width, measuredWidth, FlexLayout.MinimumWidth, FlexLayout.MaximumWidth); return(new Size(finalWidth, finalHeight)); }