Esempio n. 1
0
        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));
        }