MetroFramework.Controls.MetroButton.OnPaintBackground C# (CSharp) Method

OnPaintBackground() protected method

protected OnPaintBackground ( PaintEventArgs e ) : void
e System.Windows.Forms.PaintEventArgs
return void
        protected override void OnPaintBackground(PaintEventArgs e)
        {
            try
            {
                Color backColor = BackColor;

                if (isHovered && !isPressed && Enabled)
                {
                    backColor = MetroPaint.BackColor.Button.Hover(Theme);
                }
                else if (isHovered && isPressed && Enabled)
                {
                    backColor = MetroPaint.BackColor.Button.Press(Theme);
                }
                else if (!Enabled)
                {
                    backColor = MetroPaint.BackColor.Button.Disabled(Theme);
                }
                else if (Highlight && Enabled)
                {
                    backColor = MetroPaint.GetStyleColor(Style);
                }
                else
                {
                    if (!useCustomBackColor)
                    {
                        backColor = MetroPaint.BackColor.Button.Normal(Theme);
                    }
                }

                if (backColor.A == 255 && BackgroundImage == null)
                {
                    e.Graphics.Clear(backColor);
                    return;
                }

                base.OnPaintBackground(e);

                OnCustomPaintBackground(new MetroPaintEventArgs(backColor, Color.Empty, e.Graphics));
            }
            catch
            {
                Invalidate();
            }
        }