[C#] Desenhando um LED em um PictureBox

Hoje vou compartilhar um método para desenhar um LED em um PictureBox

#region Desenha LED
   enum LedFormat
   {
      Retangulo = 0,
      Circulo
   }
 
   private void DesenhaLed(PictureBox pic, bool v, Color color, LedFormat Format = LedFormat.Circulo)
   {
      pic.Image = new Bitmap(pic.Height, pic.Width);
 
      var bmp = pic.Image;
      using (var g = Graphics.FromImage(bmp))
      {
         var local = pic.Height / 8;
         g.SmoothingMode = SmoothingMode.AntiAlias;
         g.CompositingQuality = CompositingQuality.HighQuality;
         g.InterpolationMode = InterpolationMode.HighQualityBicubic;
         g.PixelOffsetMode = PixelOffsetMode.HighQuality;
 
         g.Clear(pic.BackColor);
 
         if (!pic.Enabled)
         {
            color = Color.DarkGray;
         }
 
         switch (Format)
         {
            case LedFormat.Circulo:
               g.FillEllipse(new SolidBrush(Color.Black), pic.ClientRectangle);
               g.FillEllipse(new SolidBrush(v ? color : ControlPaint.Dark(color)), new Rectangle(local, local, pic.Width - (local * 2), pic.Height - (local * 2)));
               break;
            case LedFormat.Retangulo:
               g.FillRectangle(new SolidBrush(Color.Black), pic.ClientRectangle);
               g.FillRectangle(new SolidBrush(v ? color : ControlPaint.Dark(color)), new Rectangle(local, local, pic.Width - (local * 2), pic.Height - (local * 2)));
               break;
         }
      }
      pic.Invalidate(); // Trigger redraw of the control.
   }
#endregion

Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[C#] Desenhando um LED em um PictureBox
Tags:                         

Deixe uma resposta

%d blogueiros gostam disto: