VisualStyleRenderer.GetBackgroundRegion(IDeviceContext, Rectangle) Method

Definition

Returns the region for the background of the current visual style element.

C#
public System.Drawing.Region GetBackgroundRegion(System.Drawing.IDeviceContext dc, System.Drawing.Rectangle bounds);
C#
public System.Drawing.Region? GetBackgroundRegion(System.Drawing.IDeviceContext dc, System.Drawing.Rectangle bounds);

Parameters

dc
IDeviceContext

The IDeviceContext this operation will use.

bounds
Rectangle

A Rectangle that contains the entire background area of the current visual style element.

Returns

The Region that contains the background of the current visual style element.

Exceptions

dc is null.

Examples

The following code example demonstrates how to use the GetBackgroundRegion method in a custom control. This example uses GetBackgroundRegion to get the Region of the window title bar element returned by the VisualStyleElement.Window.Caption.Active property. This Region is used to set the Control.Region property of the control, so that the window title bar will appear with the rounded corners defined by the standard Windows XP visual style. This code example is part of a larger example provided for the VisualStyleRenderer class overview.

C#
// Calculate and set the clipping region for the control  
// so that the corners of the title bar are rounded.
private void SetClipRegion()
{
    if (!Application.RenderWithVisualStyles)
    {
        return;
    }

    using (Graphics g = this.CreateGraphics())
    {
        // Get the current region for the window caption.
        if (SetRenderer(windowElements["windowCaption"]))
        {
            Region clipRegion = renderer.GetBackgroundRegion(
                g, elementRectangles["windowCaption"]);

            // Get the client rectangle, but exclude the region 
            // of the window caption.
            int height = (int)clipRegion.GetBounds(g).Height;
            Rectangle nonCaptionRect = new Rectangle(
                ClientRectangle.X,
                ClientRectangle.Y + height,
                ClientRectangle.Width,
                ClientRectangle.Height - height);

            // Add the rectangle to the caption region, and  
            // make this region the form's clipping region.
            clipRegion.Union(nonCaptionRect);
            this.Region = clipRegion;
        }
    }
}

Remarks

This method can be used to get the Region of a visual style element that has partially transparent or alpha-blended parts in its background.

Applies to

Product Versions
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10