示例#1
0
        protected Rectangle GetDefaultRect(Rectangle parent)
        {
            Rectangle drawRect = new Rectangle();

            if (Size.HasFlag(DrawingSize.XMin))
            {
                drawRect.Width = (int)MinimumSize.X;
            }
            else if (Size.HasFlag(DrawingSize.XMax))
            {
                drawRect.Width = parent.Size.X;
            }

            if (Size.HasFlag(DrawingSize.YMin))
            {
                drawRect.Height = (int)MinimumSize.Y;
            }
            else if (Size.HasFlag(DrawingSize.YMax))
            {
                drawRect.Height = parent.Size.Y;
            }

            if (drawRect.Width > MaximumSize.X && MaximumSize.X != -1)
            {
                drawRect.Width = (int)MaximumSize.X;
            }
            if (drawRect.Height > MaximumSize.Y && MaximumSize.Y != -1)
            {
                drawRect.Height = (int)MaximumSize.Y;
            }

            if (ScalingMethod == ScalingMethod.KeepRatio)
            {
                if (drawRect.Width * ratio > MaximumSize.Y)
                {
                    drawRect.Width = (int)(MaximumSize.Y / ratio);
                }

                drawRect.Height = (int)(drawRect.Width * ratio);
            }

            if (drawRect.Width < MinimumSize.X && MinimumSize.X != -1)
            {
                drawRect.Width = (int)MinimumSize.X;
            }
            if (drawRect.Height < MinimumSize.Y && MinimumSize.Y != -1)
            {
                drawRect.Height = (int)MinimumSize.Y;
            }

            drawRect.Location  = LocalPosition.ToPoint() + parent.Location;
            drawRect.Location += Offset.ToPoint();
            drawRect.Location += (drawRect.Size.ToVector2() * -Origin).ToPoint(); // Origin

            return(drawRect);
        }
 public override void Update(GameTime gameTime)
 {
     base.Update(gameTime);
     drawRectangle.Location = LocationOverride ? LocalPosition.ToPoint() : GlobalPosition.ToPoint();
 }