/// <summary>
        /// Desenha o controle de acordo com as coordenadas.
        /// </summary>
        public override void Draw()
        {
            if (!Visible)
            {
                return;
            }
            if (!Enabled)
            {
                return;
            }

            State = EngineButtonStyle.Inactive;

            if (Enabled)
            {
                if (InsideButton())
                {
                    if (!move)
                    {
                        move = true;
                        OnMouseMove(EventArgs.Empty);
                    }

                    State = EngineButtonStyle.Hover;

                    if (EngineCore.MouseDown)
                    {
                        State = EngineButtonStyle.Active;

                        if (!click)
                        {
                            OnMouseDown(EventArgs.Empty);
                            click = true;
                        }
                    }
                    else
                    {
                        if (click)
                        {
                            OnMouseUp(EventArgs.Empty);
                        }

                        click = false;
                        State = EngineButtonStyle.Hover;
                    }
                }
                else
                {
                    if (move)
                    {
                        move = false;
                        OnMouseLeave(EventArgs.Empty);
                    }
                }
            }

            EngineCore.SpriteDevice.Begin(SpriteFlags);
            EngineCore.SpriteDevice.Draw(texture[(int)State], new Color(Color.R, Color.G, Color.B, Transparency), SourceRect, new Vector3(0, 0, 0), new Vector3(Position.X, Position.Y, 0));
            EngineCore.SpriteDevice.End();
        }
        /// <summary>
        /// Desenha o controle.
        /// </summary>
        public override void Draw()
        {
            if (!Visible)
            {
                return;
            }
            if (!Enabled)
            {
                return;
            }

            State = EngineButtonStyle.Inactive;

            if (Enabled)
            {
                if (InsideButton())
                {
                    if (!move)
                    {
                        move = true;
                        OnMouseMove(EngineEventArgs.Empty);
                    }

                    State = EngineButtonStyle.Hover;

                    //if (EngineCore.MouseLeft || EngineCore.MouseRight) {
                    if (EngineCore.MouseLeft)
                    {
                        State = EngineButtonStyle.Active;
                        left  = EngineCore.MouseLeft;
                        //right = EngineCore.MouseRight;

                        if (!click)
                        {
                            OnMouseDown(new EngineEventArgs(left, right));
                            click = true;
                        }
                    }
                    else
                    {
                        if (click)
                        {
                            OnMouseUp(new EngineEventArgs(left, right));
                        }

                        left = false;
                        //right = false;
                        click = false;
                        State = EngineButtonStyle.Hover;
                    }
                }
                else
                {
                    if (move)
                    {
                        move = false;
                        OnMouseLeave(EngineEventArgs.Empty);
                    }
                }
            }

            EngineCore.SpriteDevice.Begin(SpriteFlags);
            EngineCore.SpriteDevice.Draw(texture[(int)State], _color, SourceRect, null, _position);
            EngineCore.SpriteDevice.End();
        }