This topic has not yet been rated - Rate this topic

VisualStyleRenderer.GetBackgroundRegion Method

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

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ