[C#] Método para criação de Label com sombra

Segue mais um trecho de código, para criação de Label com sombra, como víamos muito em softwares criados principalmente no Delphi.

Código-Fonte


public void CreateLabel3D(Label cnt) {
   int x = 0,
   y = 0;
   Graphics g = cnt.CreateGraphics();
   Bitmap _graficoBitmap = new Bitmap(cnt.Width, cnt.Height, g);
   Graphics ggr = Graphics.FromImage(_graficoBitmap);
   ggr.SmoothingMode = SmoothingMode.AntiAlias;
   ggr.PixelOffsetMode = PixelOffsetMode.HighQuality;
   ggr.FillRectangle(new SolidBrush(cnt.BackColor), cnt.ClientRectangle);
   if (cnt.TextAlign.ToString().Contains("Center")) {
      x = (cnt.Width - (int) ggr.MeasureString(cnt.Text, cnt.Font).Width) / 2;
   } else if (cnt.TextAlign.ToString().Contains("Left")) {
      x = 0;
   } else if (cnt.TextAlign.ToString().Contains("Right")) {
      x = (cnt.Width - (int) ggr.MeasureString(cnt.Text, cnt.Font).Width) - 3;
   }
   if (cnt.TextAlign.ToString().Contains("Top")) {
      y = 0;
   } else if (cnt.TextAlign.ToString().Contains("Middle")) {
      y = (cnt.Height - (int) ggr.MeasureString(cnt.Text, cnt.Font).Height) / 2;
   } else if (cnt.TextAlign.ToString().Contains("Bottom")) {
      y = (cnt.Height - (int) ggr.MeasureString(cnt.Text, cnt.Font).Height) - 3;
   }
   ggr.DrawString(cnt.Text, cnt.Font, (new SolidBrush(Color.FromArgb(50, cnt.ForeColor.R, cnt.ForeColor.G, cnt.ForeColor.B))), new Point(x + 3, y + 3));
   ggr.DrawString(cnt.Text, cnt.Font, (new SolidBrush(cnt.ForeColor)), new Point(x, y));
   cnt.Image = _graficoBitmap;
   cnt.Text = "";
}

Obrigado e até o próximo post.

DATEK Tecnologia Eletrônica
[C#] Método para criação de Label com sombra
Tags:                         

Deixe uma resposta

%d blogueiros gostam disto: