TextLine
Represents a line of text after line breaking.
public TextRange rangeThe codepoint range covered by this line.
Width of trailing whitespace excluded from width, in font units.
public HorizontalAlignment alignmentAlignment this line was actually laid out to, set during layout: the component's setting after every per-range override, the paragraph-last rule and the justification fallback have had their say. What a pass reads to place something on the edge the text was pinned to; never HorizontalAlignment.Justify on a line that ended up unjustified.
Baseline of the line in pixels down from the top of the layout area, the space of PositionedGlyph.y. Valid only while UniTextBuffers.HasLineGeometry holds.
Top of the line's hit band, at the primary font's ascender above baseline. Bands of consecutive lines share edges, so every vertical position over the text belongs to exactly one line. Valid only while UniTextBuffers.HasLineGeometry holds.
Bottom of the line's hit band: the next line's top, or for the last line the primary font's descender below baseline. Valid only while UniTextBuffers.HasLineGeometry holds.
Left edge of the box the line is aligned in, in pixels from the left of the layout area; startMargin indents from it. Valid only while UniTextBuffers.HasLineGeometry holds.
Width of the box the line is aligned in, in pixels; unbounded text reports TextProcessSettings.FloatMax. Valid only while UniTextBuffers.HasLineGeometry holds.
Extra leading reserved above this line for tall boundary content such as over-ruby; on the first line it reserves the block's top instead. Written through TextProcessor.ReserveLineSpace from a line-height callback, largest wins.
Extra leading reserved below this line; on the last line it reserves the block's bottom instead. Written through TextProcessor.ReserveLineSpace from a line-height callback, largest wins.
Signed adjustment to the gap between this line and the next — negative pulls them together, down to full overlap, and the gap never inverts. Unused on the last line, so block edges stay untouched. Written through TextProcessor.AddLineGap from a line-height callback, requests summing.
