Share via


Strokes.GetBoundingBox Method

Returns the bounding Rectangle that contains the Stroke object, by using the default BoundingBoxMode flag to determine the bounds.

Namespace:  Microsoft.Ink
Assembly:  Microsoft.Ink (in Microsoft.Ink.dll)

Syntax

'Declaration
Public Function GetBoundingBox As Rectangle
'Usage
Dim instance As Strokes 
Dim returnValue As Rectangle 

returnValue = instance.GetBoundingBox()
public Rectangle GetBoundingBox()
public:
Rectangle GetBoundingBox()
public function GetBoundingBox() : Rectangle

Return Value

Type: System.Drawing.Rectangle
Returns the bounding Rectangle that defines the bounding box for the Strokes collection.

Remarks

The bounding Rectangle is in ink space coordinates.

The bounding Rectangle corresponds to the portion of the display to invalidate or redraw when displaying a Strokes collection.

When the bounding box is affected by the pen width, then this width is scaled appropriately for the Renderer object's view transform. To do this, the pen width is multiplied by the square root of the determinant of the view transform.

Note

If you have not set the pen width explicitly, its default value is 53. You must multiply the pen width by the square root of the determinant to yield the correct bounding box. The height and width of the bounding box are expanded by half this amount in each direction. For example, consider that the pen width is 53, the square root of the determinant is 50, and the bounding box is (0, 0, 1000, 1000). The pen width adjustment to the bounding box in each direction is calculated as (53 * 50) / 2, and the right and bottom sides are incremented by one. This results in a rendered bounding box of (-1325, -1325, 2326, 2326).

Note

The bounding Rectangle that this method returns is a copy of the bounding box of the Strokes collection. Altering the Rectangle that this method returns has no affect on the bounding box of the original Strokes collection.

Examples

In this example, a Strokes collection of an InkOverlay,object is clipped to the right half of the Strokes collection. First, the bounding rectangle of the Strokes collection is obtained by calling the GetBoundingBox method. A new rectangle with the right half clipped is then created and passed to the Clip method.

' Access to the Strokes property returns a copy of the Strokes object. 
' This copy must be implicitly (via using statement) or explicitly 
' disposed of in order to avoid a memory leak. 
Using allStrokes As Strokes = mInkOverlay.Ink.Strokes
    ' Determine the bounding box for the Strokes collection. 
    Dim bounds As Rectangle = allStrokes.GetBoundingBox()
    'Create rectangle for Clip method. 
    Dim halfRectangle As Rectangle = _
            New Rectangle(bounds.Left, bounds.Top, bounds.Width / 2, bounds.Height)
    ' Clip the Strokes collection.
    allStrokes.Clip(halfRectangle)
End Using
// Access to the Strokes property returns a copy of the Strokes object. 
// This copy must be implicitly (via using statement) or explicitly 
// disposed of in order to avoid a memory leak. 
using (Strokes allStrokes = mInkOverlay.Ink.Strokes)
{
    // Determine the bounding box for the Strokes collection.
    Rectangle bounds = allStrokes.GetBoundingBox();
    //Create rectangle for Clip method.
    Rectangle halfRectangle = 
        new Rectangle(bounds.Left, bounds.Top, bounds.Width / 2, bounds.Height);
    // Clip the Strokes collection.
    allStrokes.Clip(halfRectangle);
}

Platforms

Windows 7, Windows Vista, Windows Server 2008 R2, Windows Server 2008

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

Version Information

.NET Framework

Supported in: 3.0

See Also

Reference

Strokes Class

Strokes Members

GetBoundingBox Overload

Microsoft.Ink Namespace

Stroke.GetBoundingBox

BoundingBoxMode