MonoGameUi.Control.SetDimension C# (CSharp) Method

SetDimension() protected method

Führt eine automatische Anordnung auf Basis der aktuellen Size und den Alignment-Parametern durch.
protected SetDimension ( Point actualSize, Point containerSize ) : void
actualSize Point
containerSize Point
return void
        protected void SetDimension(Point actualSize, Point containerSize)
        {
            var size = new Point(
                Math.Min(containerSize.X, HorizontalAlignment == HorizontalAlignment.Stretch ? containerSize.X : actualSize.X),
                Math.Min(containerSize.Y, VerticalAlignment == VerticalAlignment.Stretch ? containerSize.Y : actualSize.Y));

            Point minSize = GetMinClientSize(containerSize) + Borders;
            Point maxSize = GetMaxClientSize(containerSize) + Borders;

            size.X = Math.Max(minSize.X, Math.Min(maxSize.X, size.X));
            size.Y = Math.Max(minSize.Y, Math.Min(maxSize.Y, size.Y));

            ActualSize = size;

            int x = 0;
            int y = 0;

            switch (HorizontalAlignment)
            {
                case HorizontalAlignment.Center:
                    x = (containerSize.X - ActualSize.X) / 2;
                    break;
                case HorizontalAlignment.Right:
                    x = containerSize.X - ActualSize.X;
                    break;
            }

            switch (VerticalAlignment)
            {
                case VerticalAlignment.Center:
                    y = (containerSize.Y - ActualSize.Y) / 2;
                    break;
                case VerticalAlignment.Bottom:
                    y = containerSize.Y - ActualSize.Y;
                    break;
            }

            ActualPosition = new Point(x, y);
        }