Share via


Renderer.Measure Method (Stroke)

Calculates the Rectangle on the device context needed to contain the Stroke object to be drawn with the Draw method of the Renderer object.

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

Syntax

'Declaration
Public Function Measure ( _
    stroke As Stroke _
) As Rectangle
'Usage
Dim instance As Renderer
Dim stroke As Stroke
Dim returnValue As Rectangle

returnValue = instance.Measure(stroke)
public Rectangle Measure (
    Stroke stroke
)
public:
Rectangle Measure (
    Stroke^ stroke
)
public Rectangle Measure (
    Stroke stroke
)
public function Measure (
    stroke : Stroke
) : Rectangle
Not applicable.

Parameters

  • stroke
    The Stroke object to measure.

Return Value

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

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).

Example

This C# example gets the bounding rectangle for a Stroke object created by Microsoft.Ink.Ink.CreateStroke, by using an array of Point objects, points. The Ink object and the Renderer object come from the InkOverlay object, theInkOverlay.

Stroke createdStroke = theInkOverlay.Ink.CreateStroke(points);
Rectangle bounds = theInkOverlay.Renderer.Measure(createdStroke);

This Microsoft® Visual Basic® .NET example gets the bounding rectangle for a Stroke object created by Microsoft.Ink.Ink.CreateStroke, by using an array of Point objects, points. The Ink object and the Renderer object come from the InkOverlay object, theInkOverlay.

Dim createdStroke As Stroke = theInkOverlay.Ink.CreateStroke(points)
Dim bounds As Rectangle = theInkOverlay.Renderer.Measure(createdStroke)

Platforms

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

Version Information

.NET Framework

Supported in: 3.0

See Also

Reference

Renderer Class
Renderer Members
Microsoft.Ink Namespace
Microsoft.Ink.Renderer.Draw
Microsoft.Ink.Stroke.GetBoundingBox
Microsoft.Ink.Strokes.GetBoundingBox
DrawingAttributes