Beispiel #1
0
 public SketchAlignment(SketchAxisAlignment horizontal, SketchAxisAlignment vertical)
 {
     Horizontal = horizontal;
     Vertical   = vertical;
 }
Beispiel #2
0
        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);
        }