Export (0) Print
Expand All

VisualStyleRenderer.GetPartSize Method (IDeviceContext, ThemeSizeType)

Returns the value of the specified size property of the current visual style part.

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

public Size GetPartSize(
	IDeviceContext dc,
	ThemeSizeType type
)

Parameters

dc
Type: System.Drawing.IDeviceContext

The IDeviceContext this operation will use.

type
Type: System.Windows.Forms.VisualStyles.ThemeSizeType

One of the ThemeSizeType values that specifies which size value to retrieve for the part.

Return Value

Type: System.Drawing.Size
A Size that contains the size specified by the type parameter for the current visual style part.

ExceptionCondition
ArgumentNullException

dc is null.

InvalidEnumArgumentException

prop is not one of the ThemeSizeType values.

Typically, only the True and Minimum values should be used for the type parameter of this method.

The following code example demonstrates how to use the GetPartSize(IDeviceContext, ThemeSizeType) method in a custom control to get the sizes of a window title bar, Close button, borders, and sizing handle specified by the visual style. These sizes are used to calculate the sizes of the Rectangle objects used to draw the VisualStyleElement objects that represent these window parts. This code example is part of a larger example provided for the VisualStyleRenderer class overview.

// Get the sizes and offsets for the window parts as specified   
// by the visual style. 
private void GetPartDetails()
{
    // Do nothing further if visual styles are not enabled. 
    if (!Application.RenderWithVisualStyles)
    {
        return;
    }

    using (Graphics g = this.CreateGraphics())
    {
        // Get the size and offset of the close button. 
        if (SetRenderer(windowElements["windowClose"]))
        {
            closeButtonSize =
                renderer.GetPartSize(g, ThemeSizeType.True);
            closeButtonOffset =
                renderer.GetPoint(PointProperty.Offset);
        }

        // Get the height of the window caption. 
        if (SetRenderer(windowElements["windowCaption"]))
        {
            captionHeight = renderer.GetPartSize(g,
                ThemeSizeType.True).Height;
        }

        // Get the thickness of the left, bottom,  
        // and right window frame. 
        if (SetRenderer(windowElements["windowLeft"]))
        {
            frameThickness = renderer.GetPartSize(g,
                ThemeSizeType.True).Width;
        }

        // Get the size of the resizing gripper. 
        if (SetRenderer(windowElements["statusGripper"]))
        {
            gripperSize = renderer.GetPartSize(g,
                ThemeSizeType.True);
        }
    }
}

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft