Skip to content

Latest commit

 

History

History
41 lines (30 loc) · 2.95 KB

how-to-draw-with-opaque-and-semitransparent-brushes.md

File metadata and controls

41 lines (30 loc) · 2.95 KB
title ms.date dev_langs helpviewer_keywords ms.assetid description
How to: Draw with Opaque and Semitransparent Brushes
03/30/2017
csharp
vb
semi-transparent shapes [Windows Forms], drawing
transparency [Windows Forms], semi-transparent shapes
alpha blending [Windows Forms], brush
brushes [Windows Forms], using semi-transparent
a4f6f6b8-3bc8-440a-84af-d62ef0f8ff40
Learn how to draw with opaque and semitransparent brushes by setting the alpha component to 255 for opaque or 1 through 254 for semitransparent.

How to: Draw with Opaque and Semitransparent Brushes

When you fill a shape, you must pass a xref:System.Drawing.Brush object to one of the fill methods of the xref:System.Drawing.Graphics class. The one parameter of the xref:System.Drawing.SolidBrush.%23ctor%2A constructor is a xref:System.Drawing.Color object. To fill an opaque shape, set the alpha component of the color to 255. To fill a semitransparent shape, set the alpha component to any value from 1 through 254.

When you fill a semitransparent shape, the color of the shape is blended with the colors of the background. The alpha component specifies how the shape and background colors are mixed; alpha values near 0 place more weight on the background colors, and alpha values near 255 place more weight on the shape color.

Example

The following example draws a bitmap and then fills three ellipses that overlap the bitmap. The first ellipse uses an alpha component of 255, so it is opaque. The second and third ellipses use an alpha component of 128, so they are semitransparent; you can see the background image through the ellipses. The call that sets the xref:System.Drawing.Graphics.CompositingQuality%2A property causes the blending for the third ellipse to be done in conjunction with gamma correction.

[!code-csharpSystem.Drawing.AlphaBlending#31] [!code-vbSystem.Drawing.AlphaBlending#31]

The following illustration shows the output of the following code:

Illustration that shows opaque and semitransparent output.

Compiling the Code

The preceding example is designed for use with Windows Forms, and it requires xref:System.Windows.Forms.PaintEventArgs e, which is a parameter of xref:System.Windows.Forms.PaintEventHandler.

See also