GetBackgroundRegion Method

VisualStyleRenderer.GetBackgroundRegion Method (IDeviceContext, Rectangle)

 

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

Namespace:   System.Windows.Forms.VisualStyles
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public Region GetBackgroundRegion(
	IDeviceContext dc,
	Rectangle bounds
)

Parameters

dc
Type: System.Drawing.IDeviceContext

The IDeviceContext this operation will use.

bounds
Type: System.Drawing.Rectangle

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

Return Value

Type: System.Drawing.Region

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

Exception Condition
ArgumentNullException

dc is null.

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.

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.

// 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;
        }
    }
}

.NET Framework
Available since 2.0
Return to top
Show:
© 2016 Microsoft