CalcSize Method (RenderObject)
Calculates the size of the current object. When this method is called, the object must already have been added to the document (e.g. to
Body or to
Children of another object in the document). See
remarks for more details.
'Declaration
Public Function CalcSize( _
ByVal As Unit, _
ByVal As Unit _
) As SizeD
Parameters
- width
- The width of the current object. This parameter may be specified as Unit.Auto or as an absolute value (but it must not reference other objects).
- height
- The height of the current object. This parameter may be specified as Unit.Auto or as an absolute value (but it must not reference other objects).
Return Value
The size of the current object, in
ResolvedUnit units.
The following C# code may be used to test whether a
RenderText will fit on the current page if inserted at the current block flow position (see
C1PrintDocument.AvailableBlockFlowHeight):
C1PrintDocument doc = new C1PrintDocument();
doc.StartDoc();
RenderText rt = new RenderText("The text to measure.);
// add the object temporarily to calculate its size:
doc.Body.Children.Add(rt);
// measure the object, specifying page width and auto heigh
// (i.e. effectively, measure the text height):
C1PageSettings ps = doc.PageLayout.PageSettings;
double pageWidth = ps.Width.Value - ps.LeftMargin.Value - ps.RightMargin.Value;
SizeD sz = rt.CalcSize(new Unit(pageWidth, ps.Width.Units), Unit.Auto);
// remove the object added temporarily:
doc.Body.Children.Remove(rt);
// test whether the object would fit on the page:
if (doc.AvailableBlockFlowHeight >= sz.Height)
{
// object would fit, do something:
doc.RenderBlockText("YES");
}
doc.EndDoc();