public override Size ArrangeOverride(IPanelAdapter adapter, Size finalSize)
        {
            double usedHeight = 0;
            var    colWidth   = finalSize.Width / Columns;

            foreach (var row in measurements)
            {
                for (int i = 0; i < row.Items.Count; i++)
                {
                    adapter.Arrange(row.Items[i], i * colWidth, usedHeight, colWidth, row.RowHeight);
                }
                usedHeight += row.RowHeight;
            }
            return(new Size(finalSize.Width, usedHeight));
        }
Example #2
0
        public override Size ArrangeOverride(IPanelAdapter adapter, Size finalSize)
        {
            if (adapter.ChildrenCount < 1)
            {
                return(finalSize);
            }
            var desiredSize = adapter.GetDesiredSize(0);

            var finalRect = new Rect(
                new Point((finalSize.Width - desiredSize.Width) / 2, (finalSize.Height - desiredSize.Height) / 2), desiredSize);

            var adjustedRect = ApplyOffset ? new Rect(OffsetPoint(finalRect, Offset.Left, Offset.Top),
                                                      OffsetPoint(finalRect, Offset.Right, Offset.Bottom)) : finalRect;

            for (int i = 0; i < adapter.ChildrenCount; i++)
            {
                adapter.Arrange(i, i == 0 ? finalRect : adjustedRect);
            }
            return(finalSize);
        }
Example #3
0
 public static void Arrange(this IPanelAdapter adapter, int child, double left, double top, double width,
                            double height) =>
 adapter.Arrange(child, new Rect(left, top, width, height));