Partager via


Renderer.Measure Method

Renderer.Measure Method

Calculates the Rectangle Leave Site on the device context needed to contain the Strokes collection to be drawn with the Draw method of the Renderer object.

Definition

Visual Basic .NET Public Function Measure( _
ByVal strokes As Strokes _
) As Rectangle
C# public Rectangle Measure(
Strokes strokes
);
Managed C++ public: Rectangle* Measure(
Strokes *strokes
);

Parameters

strokes Microsoft.Ink.Strokes. The Strokes collection to measure.

Return Value

System.Drawing.Rectangle. The Rectangle Leave Site on the device context needed to contain the strokes if the strokes were drawn with the Draw method of the Renderer object. The strokes must contain x-coordinates and y-coordinates to calculate the rectangle. Otherwise, the method returns an empty rectangle.

Exceptions

ArgumentNullException Leave Site: The caller does not specify the Strokes collection.
COMException Leave Site:

Remarks

This method is accurate only if you pass the same arguments to both the Measure and Draw methods.

Because the bounding box is affected by the pen width, 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. The height and width of the bounding box are expanded by half this amount in each direction, and the right and bottom sides are incremented by one.

For example, consider that the pen width is originally 53, the square root of the determinant of the view transform 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).

Examples

[C#]

This C# example gets the bounding rectangle for the Strokes collection in the InkCollector object, theInkCollector.

Rectangle theMeasure = theInkCollector.Renderer.Measure(theInkCollector.Ink.Strokes);
            

[VB.NET]

This Microsoft® Visual Basic® .NET example gets the bounding rectangle for the Strokes collection in the InkCollector object, theInkCollector.

Dim theMeasure As Rectangle = theInkCollector.Renderer.Measure(theInkCollector.Ink.Strokes)
                

See Also