Skip to main content

BrickGraphics.MeasureString(String, Int32, StringFormat) Method

Measures the specified string when drawn with the specified maximum width and format. Works in Windows environment only.

Namespace: DevExpress.XtraPrinting

Assembly: DevExpress.Printing.v24.2.Core.dll

Declaration

public SizeF MeasureString(
    string text,
    int width,
    StringFormat stringFormat
)

Parameters

Name Type Description
text String

String to measure.

width Int32

An integer value specifying the maximum width of the measured string.

stringFormat StringFormat

The formatting settings for the measured string.

Returns

Type Description
SizeF

This method returns a SizeF structure that represents the size, measured in pixels.

Remarks

This method measures a text string specified via the parameter. The resulting string size is determined not only by the string’s contents, but also by the BrickGraphics.Font property value. The measured string size also depends on the current string format. If measured string width exceeds the width parameter value, then the height parameter value of the returned SizeF structure is increased, in order to fit inside the measured string.

This method overload uses GDI/GDI+ rendering and works only on Windows OS. The PlatformNotSupportedException is thrown on other operating systems. Use the BrickGraphics.MeasureString(String, Int32, DXStringFormat) overload in non-Windows environments.

Example

This example calculates the dimensions of the rectangle to fit the specified string with a limitation on maximum width (75 measurement units). The calculation is performed according to the specified StringFormat parameter. Then, a report with the VisualBrick, containing the string, is created and displayed.

MeasureString3

using DevExpress.XtraPrinting;
// ...

    VisualBrick visBrick;
    BrickGraphics brickGraph = printingSystem1.Graph;
    string s = "Developer Express Inc.";

    // Specify the vertical alignment.
    StringFormat sFormat = new StringFormat(StringFormatFlags.DirectionVertical);

    // Measure the string with the specified format and maximum width.
    SizeF sz = brickGraph.MeasureString(s,75,sFormat);

    // Start the report generation.
    printingSystem1.Begin();

    // Specify a page area.
    brickGraph.Modifier = BrickModifier.Detail;

    // Set default vertical alignment for the text in bricks.
    brickGraph.DefaultBrickStyle.StringFormat = new BrickStringFormat(sFormat);

    // Create a rectangle of the calculated size plus the border dimensions.
    RectangleF rect = new RectangleF(new PointF(0, 0), sz);
    rect = brickGraph.DefaultBrickStyle.InflateBorderWidth(rect, GraphicsDpi.Pixel);
    rect.Offset(-rect.X, -rect.Y);

    // Add a text brick to the report.
    visBrick = brickGraph.DrawString(s, Color.Black, rect, BorderSide.All);

    // Finish the report generation.
    printingSystem1.End();

    // Preview the report.
    printingSystem1.PreviewFormEx.Show();
See Also