protected override void OnPaint(PaintEventArgs pevent) { var g = pevent.Graphics; g.Clear(BackColor); if (Enabled && MouseState != MouseState.None) { g.FillRoundedRectangle( MouseState.HasFlag(MouseState.Pushed) ? AppColors.PressedBrush : AppColors.HoverBrush, pevent.ClipRectangle, Radius); } if (ShowBorder || (Enabled && MouseState != MouseState.None)) { g.DrawRoundedRectangle( MouseState.HasFlag(MouseState.Pushed) ? AppColors.PressedPen : AppColors.HoverPen, pevent.ClipRectangle, Radius); } if (Image != null) { g.DrawImageUnscaled(Image, (pevent.ClipRectangle.Width - Image.Width) / 2, (pevent.ClipRectangle.Height - Image.Height) / 2 ); } if (!string.IsNullOrEmpty(Text)) { var size = g.MeasureString(Text, Font); using (var brush = new SolidBrush(Enabled ? ForeColor : Color.Gray)) { g.DrawString(Text, Font, brush, (pevent.ClipRectangle.Width - size.Width) / 2, (pevent.ClipRectangle.Height - size.Height) / 2, new StringFormat { Trimming = StringTrimming.EllipsisCharacter, FormatFlags = StringFormatFlags.LineLimit | StringFormatFlags.NoWrap }); } } }