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)); }
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); }
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));