FCanvasTextItem with Text Wrapping?


Does anyone know how to use text wrapping with FCanvasTextItem ? I want to draw dialogue text via canvas, however I didn’t notice any text wrapping related fields for FCanvasItem.
I’m aware that UMG’s TextBlock has this Auto Text Wrap capability, but I want to try using canvas if possible.

Thanks for you attention.



Just want to update, in the end I managed to split a string into lines by using UCanvas’s WrapString static function.

UFont* font = LoadAssetFromPath<UFont>(TEXT("Font'/Engine/EngineFonts/Roboto.Roboto'"));  //based on Rama's function
FCanvasWordWrapper wrapper;
FTextSizingParameters params;
TArray<FWrappedStringElement> lines;
params.DrawFont = font;
params.DrawX = dlgStartX;
params.DrawXL = dlgWidth - totalPaddingX;
params.DrawY = dlgStartY;
params.DrawYL = dlgHeight -totalPaddingY;
params.Scaling = FVector2D(fontScaling, fontScaling);
UCanvas::WrapString(wrapper, params, 0, *myString, lines);

As for calculating string height, I use UFont’s GetStringHeightSize.