BestSizeEstimator.GetFontToFitBounds(XRLabel, String) Method

Gets the font with which the specified text fits the specified label's boundaries.

Namespace: DevExpress.XtraReports.UI

Assembly: DevExpress.XtraReports.v18.2.dll

Declaration

public static Font GetFontToFitBounds(
    XRLabel label,
    string text
)
Public Shared Function GetFontToFitBounds(
    label As XRLabel,
    text As String
) As Font

Parameters

Type Name Description
XRLabel label

An XRLabel control whose boundaries will be used in calculations.

String text

A string that specifies the text used in calculations.

Returns

Type Description
Font

The Font object that specifies an optimal font.

The GetFontToFitBounds method allows you to calculate the font for the specified text to fit the specified control's boundaries. You can then apply the resulting font and the specified text to this control or other required controls.

You can also use another GetFontToFitBounds overload to find an optimal font for an actual control text (the XRControl.Text property value).

The code snippet below demonstrates how to use these methods to change the control text if the resulting font size suits a specific condition.

using DevExpress.XtraReports.UI;

private void xrLabel1_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
    XRLabel myLabel = sender as XRLabel;
    Font myFont = BestSizeEstimator.GetFontToFitBounds(myLabel, "Product: " + myLabel.Text);           
    if (myFont.Size > 12) {
        myLabel.Text = "Product: " + myLabel.Text;
        myLabel.Font = myFont;
    }
    else myLabel.Font = BestSizeEstimator.GetFontToFitBounds(myLabel);
}

If a control is bound to data, call these methods when the corresponding binding has already been evaluated (for instance, in the XRControl.BeforePrint event handler).

This method's result depends on the control's XRControl.WordWrap option.

Note

This method is not supported when the XRLabel.Angle property is specified.

To perform the opposite operation (that is get the boundaries to fit the control's text), call the BestSizeEstimator.GetBoundsToFitText method.

See Also