Esempio n. 1
0
 public static Vector Negate (Vector self) => new Vector(-self.X, -self.Y);
Esempio n. 2
0
 public static Vector Subtract (Vector left, Vector right) => new Vector(left.X - right.X, left.Y - right.Y);
Esempio n. 3
0
 public bool Equals (Vector other) => X == other.X && Y == other.Y;
Esempio n. 4
0
 public static Vector Add (Vector left, Vector right) => new Vector(left.X + right.X, left.Y + right.Y);
Esempio n. 5
0
        private Vector CalculateAlignmentOffsetCore (Size clientSize, Size renderSize)
        {
            Vector offset = new Vector();

            HorizontalAlignment halign = Align;
            VerticalAlignment valign = VAlign;

            // This is to degenerate Stretch to Top-Left in case when clipping is about to occur.
            if (halign == HorizontalAlignment.Stretch && renderSize.Width > clientSize.Width)
                halign = HorizontalAlignment.Left;
            if (valign == VerticalAlignment.Stretch && renderSize.Height > clientSize.Height)
                valign = VerticalAlignment.Top;

            if (halign == HorizontalAlignment.Center || halign == HorizontalAlignment.Stretch)
                offset.X = (clientSize.Width - renderSize.Width) / 2;
            else if (halign == HorizontalAlignment.Right)
                offset.X = clientSize.Width - renderSize.Width;
            else
                offset.X = 0;

            if (valign == VerticalAlignment.Center || valign == VerticalAlignment.Stretch)
                offset.Y = (clientSize.Height - renderSize.Height) / 2;
            else if (valign == VerticalAlignment.Bottom)
                offset.Y = clientSize.Height - renderSize.Height;
            else
                offset.Y = 0;

            return offset;
        }