/// <summary> /// Raises the <see cref="E:System.Windows.Forms.Control.Paint"></see> event. /// </summary> /// <param name="e">A <see cref="T:System.Windows.Forms.PaintEventArgs"></see> that contains the event data.</param> protected override void OnPaint(PaintEventArgs e) { if (this.Watermark != null) { if (this.Desaturate) { NuGenWatermarkRenderer.DrawDesaturatedWatermark( e.Graphics , _watermark , this.ClientRectangle , _watermarkTransparency ); } else { NuGenWatermarkRenderer.DrawWatermark( e.Graphics , _watermark , this.ClientRectangle , _watermarkTransparency ); } } base.OnPaint(e); }
public static void DrawDesaturatedWatermark(Graphics g, Image watermark, Rectangle bounds, int transparency) { int width = watermark.Width; int height = watermark.Height; Image desaturatedImage = new Bitmap(width, height, PixelFormat.Format32bppArgb); using (Graphics desaturatedGrfx = Graphics.FromImage(desaturatedImage)) { desaturatedGrfx.DrawImage( watermark, new Rectangle(0, 0, width, height), 0, 0, width, height, GraphicsUnit.Pixel, NuGenControlPaint.GetDesaturatedImageAttributes() ); } NuGenWatermarkRenderer.DrawWatermark(g, desaturatedImage, bounds, transparency); }
/// <summary> /// Raises the <see cref="E:System.Windows.Forms.Control.Paint"></see> event. /// </summary> /// <param name="e">A <see cref="T:System.Windows.Forms.PaintEventArgs"></see> that contains the event data.</param> protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; Rectangle bounds = this.ClientRectangle; if (bounds.Width > 0 && bounds.Height > 0) { using (Brush brush = new LinearGradientBrush(bounds, this.StartGradientColor, this.EndGradientColor, this.GradientDirection)) { g.FillRectangle(brush, bounds); } if (this.Watermark != null) { Rectangle watermarkBounds = NuGenControlPaint.ImageBoundsFromContentAlignment( this.WatermarkSize , this.ClientRectangle , this.WatermarkAlign ); if (this.Desaturate) { NuGenWatermarkRenderer.DrawDesaturatedWatermark( g , this.Watermark , watermarkBounds , this.WatermarkTransparency ); } else { NuGenWatermarkRenderer.DrawWatermark( g , this.Watermark , watermarkBounds , this.WatermarkTransparency ); } } } }