public SketchAlignment(SketchAxisAlignment horizontal, SketchAxisAlignment vertical) { Horizontal = horizontal; Vertical = vertical; }
UxAxisLayout BuildAxisLayout(SketchAxisAlignment sa, float start, float size, float parentSize) { var end = parentSize - (start + size); var layout = new UxAxisLayout() { Alignment = UxAxisAlignment.Start, Offset = UxSize.Points(0), Margin = new UxFloat2(0, 0), Size = null }; if (sa.FixSize) { layout.Size = UxSize.Points(size); if (sa.AlignStart) { layout.Margin.X = start; layout.Alignment = UxAxisAlignment.Start; } else if (sa.AlignEnd) { layout.Margin.Y = end; layout.Alignment = UxAxisAlignment.End; } else { layout.Alignment = UxAxisAlignment.Center; var offset = start + 0.5f * (size - parentSize); layout.Offset = UxSize.Percent(100 * offset / parentSize); } } else { if (sa.AlignStart && sa.AlignEnd) { layout.Alignment = UxAxisAlignment.Default; layout.Margin.X = start; layout.Margin.Y = end; } else { layout.Size = UxSize.Percent(100 * size / parentSize); if (sa.AlignStart) { layout.Alignment = UxAxisAlignment.Start; layout.Offset = UxSize.Points(start); } else if (sa.AlignEnd) { layout.Alignment = UxAxisAlignment.End; layout.Offset = UxSize.Points(-end); } else { layout.Alignment = UxAxisAlignment.Start; layout.Offset = UxSize.Percent(100 * start / parentSize); } } } return(layout); }