VitNX_Button.OnPaint Method

Raises the OnPaint event.
protected override void OnPaint( 
PaintEventArgs e 
)
This language is not supported or no code example is available.

Parameters

e
PaintEventArgs

protected override void OnPaint(PaintEventArgs e)
 {
     var g = e.Graphics;
     var rect = new Rectangle(0, 0, ClientSize.Width, ClientSize.Height);
     var textColor = Colors.LightText;
     var borderColor = Colors.GreySelection;
     var fillColor = _isDefault ? Colors.VitNXBlueBackground : Colors.LightBackground;
     if (Enabled)
     {
         if (ButtonStyle == VitNX_ButtonStyle.Normal)
         {
             if (Focused && TabStop) { borderColor = Colors.BlueHighlight; }
             switch (ButtonState)
             {
                 case VitNX_ControlState.Hover:
                     fillColor = _isDefault ? Colors.BlueBackground : Colors.LighterBackground;
                     break;
 
                 case VitNX_ControlState.Pressed:
                     fillColor = _isDefault ? Colors.VitNXBackground : Colors.VitNXBackground;
                     break;
             }
         }
         else if (ButtonStyle == VitNX_ButtonStyle.Flat)
         {
             switch (ButtonState)
             {
                 case VitNX_ControlState.Normal:
                     fillColor = Colors.GreyBackground;
                     break;
 
                 case VitNX_ControlState.Hover:
                     fillColor = Colors.MediumBackground;
                     break;
 
                 case VitNX_ControlState.Pressed:
                     fillColor = Colors.VitNXBackground;
                     break;
             }
         }
     }
     else
     {
         textColor = Colors.DisabledText;
         fillColor = Colors.VitNXGreySelection;
     }
     using (var b = new SolidBrush(fillColor)) { g.FillRectangle(b, rect); }
     if (ButtonStyle == VitNX_ButtonStyle.Normal)
     {
         using (var p = new Pen(borderColor, 1))
         {
             var modRect = new Rectangle(rect.Left, rect.Top, rect.Width - 1, rect.Height - 1);
             g.DrawRectangle(p, modRect);
         }
     }
     var textOffsetX = 0;
     var textOffsetY = 0;
     if (Image != null)
     {
         var stringSize = g.MeasureString(Text, Font, rect.Size);
         var x = (ClientSize.Width / 2) - (Image.Size.Width / 2);
         var y = (ClientSize.Height / 2) - (Image.Size.Height / 2);
         switch (TextImageRelation)
         {
             case TextImageRelation.ImageAboveText:
                 textOffsetY = (Image.Size.Height / 2) + (ImagePadding / 2);
                 y = y - ((int)(stringSize.Height / 2) + (ImagePadding / 2));
                 break;
 
             case TextImageRelation.TextAboveImage:
                 textOffsetY = ((Image.Size.Height / 2) + (ImagePadding / 2)) * -1;
                 y = y + ((int)(stringSize.Height / 2) + (ImagePadding / 2));
                 break;
 
             case TextImageRelation.ImageBeforeText:
                 textOffsetX = Image.Size.Width + (ImagePadding * 2);
                 x = ImagePadding;
                 break;
 
             case TextImageRelation.TextBeforeImage:
                 x = x + (int)stringSize.Width;
                 break;
         }
         g.DrawImageUnscaled(Image, x, y);
     }
     using (var b = new SolidBrush(textColor))
     {
         var modRect = new Rectangle(rect.Left + textOffsetX + Padding.Left, rect.Top + textOffsetY + Padding.Top, rect.Width - Padding.Horizontal, rect.Height - Padding.Vertical);
         var stringFormat = new StringFormat
         {
             LineAlignment = StringAlignment.Center,
             Alignment = StringAlignment.Center,
             Trimming = StringTrimming.EllipsisCharacter
         };
         g.DrawString(Text, Font, b, modRect, stringFormat);
     }
 }
					
This language is not supported or no code example is available.

.NET Framework

Supported in: 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8

.NET Core

Supported in: 5.0+, 6.0+

In this article

Definition