reckfellENGINE

RichTextLabel

Label for text with BBCode, inline objects and effects.

On this page
class RichTextLabelReckfellSharpInherits Control

RichTextLabel displays formatted text. For a static string, enable BbcodeEnabled and assign Text; for incremental construction, use Push methods, AddText and Pop. AddText displays brackets/tags literally; AppendText parses BBCode. Do not mix source Text with manual construction without an explicit reset: Text does not become a copy of the resulting content.

The label is neither a code editor nor an HTML browser. Link metadata reaches the application through MetaClicked; its handler performs navigation. Custom effects change glyph drawing rather than source text.

Declarations checked against C# SDK 1.0.0. Expand a name to see declarations and documentation.

Constructors1

RichTextLabelConstructor
# RichTextLabel
C#
public RichTextLabel();

Creates a rich-text label; add it to a parent with AddChild. Enable BbcodeEnabled to parse Text as BBCode. Does not automatically open files or links.

Properties33

AutowrapModeProperty
# AutowrapMode
C#
public TextServer.AutowrapMode AutowrapMode { get; set; }

Wrapping rule for available width: off, arbitrary or word-based. Changes display rows and metrics while retaining source Text. Give the label a layout width for predictable results.

AutowrapTrimFlagsProperty
# AutowrapTrimFlags
C#
public TextServer.LineBreakFlag AutowrapTrimFlags { get; set; }

Flags for edge-whitespace/indent handling during wrapping. The setter retains only TextServer trim-mask bits; other LineBreakFlag values do not select a separate wrapping mode here. Source text is not trimmed.

BbcodeEnabledProperty
# BbcodeEnabled
C#
public bool BbcodeEnabled { get; set; }

Controls BBCode parsing of the Text property. Does not make manual AddText parse markup; AppendText parses markup independently. Toggling does not guarantee rebuilding a manually modified stack.

ContextMenuEnabledProperty
# ContextMenuEnabled
C#
public bool ContextMenuEnabled { get; set; }

Allows opening the built-in user menu. false neither deletes the PopupMenu nor prohibits programmatic GetMenu/MenuOption. An interface setting rather than a restriction on application data copying.

CustomEffectsProperty
# CustomEffects
C#
public Reckfell.Collections.Array CustomEffects { get; set; }

Custom BBCode effect resources. The setter replaces the array and calls ReloadEffects; the getter shares the array, so mutating it does not itself reparse text. Duplicate names are ambiguous: the first matching name is used. Use PushCustomfx for direct programmatic application.

DeselectOnFocusLossEnabledProperty
# DeselectOnFocusLossEnabled
C#
public bool DeselectOnFocusLossEnabled { get; set; }

Allows deselection on focus loss. Switching false to true while unfocused immediately clears an existing selection. Use false to retain it when moving to another control.

DragAndDropSelectionEnabledProperty
# DragAndDropSelectionEnabled
C#
public bool DragAndDropSelectionEnabled { get; set; }

Allows dragging selected plain text out of the label. Requires SelectionEnabled; does not enable editing or arbitrary file drops. Assignment does not initiate a drag.

FitContentProperty
# FitContent
C#
public bool FitContent { get; set; }

Includes content in the label’s minimum size. A parent container may expand it; does not set an exact Size or shrink the font. Account for wrapping and parent constraints.

HintUnderlinedProperty
# HintUnderlined
C#
public bool HintUnderlined { get; set; }

Allows visual underlining of PushHint spans. Does not enable/disable tooltip content or edit text.

HorizontalAlignmentProperty
# HorizontalAlignment
C#
public HorizontalAlignment HorizontalAlignment { get; set; }

Default horizontal text alignment; local paragraph formatting may override it. Fill uses JustificationFlags for justification. Does not move the Control in its parent container.

JustificationFlagsProperty
# JustificationFlags
C#
public TextServer.JustificationFlag JustificationFlags { get; set; }

Line-stretching rules for justified text, such as word and final-line handling. Work with the corresponding alignment rather than setting label width.

LanguageProperty
# Language
C#
public string Language { get; set; }

Language hint for text shaping and wrapping. Does not translate the string; UI translation of source Text is a separate mechanism.

MaximumFontSizeProperty
# MaximumFontSize
C#
public int MaximumFontSize { get; set; }

Upper font-fitting bound with ResizeFontToFit. Keep consistent with MinimumFontSize; constrains fitting rather than universally prohibiting local BBCode font sizes.

MetaUnderlinedProperty
# MetaUnderlined
C#
public bool MetaUnderlined { get; set; }

Allows underlining metadata spans according to their MetaUnderline policy. Does not create links or open URLs. An explicit PushUnderline span is separate formatting.

MinimumFontSizeProperty
# MinimumFontSize
C#
public int MinimumFontSize { get; set; }

Lower font-fitting bound with ResizeFontToFit. Supply a positive value no greater than MaximumFontSize. Assignment does not mean this exact size is already drawn.

ProgressBarDelayProperty
# ProgressBarDelay
C#
public int ProgressBarDelay { get; set; }

Delay before displaying background-loading progress, in milliseconds. A positive value waits that interval; zero and negative values disable the indicator. Does not set parsing speed or character-reveal timing.

ResizeFontToFitProperty
# ResizeFontToFit
C#
public bool ResizeFontToFit { get; set; }

Allows choosing a base font size for the available area within MinimumFontSize–MaximumFontSize. Unlike FitContent, adjusts the font rather than the minimum-size requirement. Fitting depends on width and height; a tiny minimum does not ensure legibility.

ScrollActiveProperty
# ScrollActive
C#
public bool ScrollActive { get; set; }

Allows built-in vertical scrolling. Toggling reapplies source Text: when mixed with manual AddText/Push, content may rebuild from the stored string. Set the mode before manual construction. Does not mean all content fits without a scrollbar.

ScrollFollowingProperty
# ScrollFollowing
C#
public bool ScrollFollowing { get; set; }

Allows following the end of appended text. If the user scrolls upward, actual following can pause until returning to the bottom. The getter reports the setting rather than whether the view is currently at the bottom.

ScrollFollowingVisibleCharactersProperty
# ScrollFollowingVisibleCharacters
C#
public bool ScrollFollowingVisibleCharacters { get; set; }

Scrolls to content revealed through VisibleCharacters. Differs from following the full text end; intended for progressive reveal. Setting true may immediately change scrolling.

SelectionEnabledProperty
# SelectionEnabled
C#
public bool SelectionEnabled { get; set; }

Allows selecting displayed text and using SelectAll. Enabling sets FocusMode.All; disabling clears active selection and switches to accessibility focus mode. Does not make the label editable or change Text.

ShortcutKeysEnabledProperty
# ShortcutKeysEnabled
C#
public bool ShortcutKeysEnabled { get; set; }

Allows the label’s built-in command shortcuts. Does not automatically enable SelectionEnabled or prohibit direct SelectAll/MenuOption calls.

StructuredTextBidiOverrideProperty
# StructuredTextBidiOverride
C#
public TextServer.StructuredTextParser StructuredTextBidiOverride { get; set; }

Selects parsing of structured bidirectional text, such as addresses or paths. A shaping setting rather than a regex replacement of source text. StructuredTextBidiOverrideOptions supplies parameters.

StructuredTextBidiOverrideOptionsProperty
# StructuredTextBidiOverrideOptions
C#
public Reckfell.Collections.Array StructuredTextBidiOverrideOptions { get; set; }

Structured BiDi-parser parameters. The array is shared; in-place mutation does not automatically trigger recalculation. Assign a new array with different content to update: the setter may skip equal content.

TabSizeProperty
# TabSize
C#
public int TabSize { get; set; }

Default tab width measured in spaces; use a positive value. Changes tab presentation without replacing tabs with spaces in Text. Use TabStops for explicit positions.

TabStopsProperty
# TabStops
C#
public float[] TabStops { get; set; }

Explicit tab positions in text-area pixels; supply increasing positive values. C# float[] transfers data and the getter returns values: mutating the result does not reconfigure the label. Does not set source-line indentation.

TextProperty
# Text
C#
public string Text { get; set; }

Source string for rebuilding the label, including UI translation and BBCode parsing when BbcodeEnabled. Assignment replaces manual content; assigning the same nonempty string may not rebuild it. AddText, AppendText and Push methods do not append their result to this property. Use GetParsedText for resulting plain text.

TextDirectionProperty
# TextDirection
C#
public Control.TextDirection TextDirection { get; set; }

Text direction for BiDi shaping. Does not manually reverse source characters or translate text. Configure structured-text parsing separately.

ThreadedProperty
# Threaded
C#
public bool Threaded { get; set; }

Allows background text layout; defaults to false. Does not make arbitrary RichTextLabel calls thread-safe or move all drawing to another thread. Check IsFinished; until completion, metrics may cover only the processed portion.

VerticalAlignmentProperty
# VerticalAlignment
C#
public VerticalAlignment VerticalAlignment { get; set; }

Vertical placement of text content inside the label. Does not change Control alignment in its parent or enable automatic scrolling.

VisibleCharactersProperty
# VisibleCharacters
C#
public int VisibleCharacters { get; set; }

Progressive-reveal limit: -1 shows all, zero hides text, a nonnegative value sets a limit. VisibleCharactersBehavior chooses behavior before/after glyph shaping. Not a frame count or Text’s UTF-16 Length. The setter updates VisibleRatio but does not explicitly clamp oversized values; keep animation values between zero and GetTotalCharacterCount.

VisibleCharactersBehaviorProperty
# VisibleCharactersBehavior
C#
public TextServer.VisibleCharactersBehavior VisibleCharactersBehavior { get; set; }

Chooses whether reveal limits apply before shaping or to shaped characters/glyphs. Before shaping may change layout; after shaping retains full-line context, with reveal units depending on mode. Account for ligatures, composite characters and RTL; do not assume one C# char per visible glyph.

VisibleRatioProperty
# VisibleRatio
C#
public float VisibleRatio { get; set; }

Reveal fraction: values from zero to one convert to integer VisibleCharacters by truncation. One or greater shows all; a negative value hides text. Creates no timer: animate the fraction from your application. Refers to the content counter rather than necessarily the number of visually distinct letters.

Methods163

AddHrvoid
# AddHr
C#
public void AddHr(int width = 90, int height = 2, Color? color = default, HorizontalAlignment alignment = HorizontalAlignment.Center, bool widthInPercent = true, bool heightInPercent = false);

Adds a horizontal rule as separate paragraph content. Defaults to 90% of available text width and a height of two pixels. A percentage height also uses width rather than label height. The command closes its internal paragraph span: needs no extra Pop.

Parameters
NameTypeDefault
widthint90
heightint2
colorColor?default
alignmentHorizontalAlignmentHorizontalAlignment.Center
widthInPercentbooltrue
heightInPercentboolfalse
width

Nonnegative width; defaults to 90 percent.

height

Nonnegative height; Percent for images uses available text width.

color

Image modulation or the corresponding decoration color.

alignment

Horizontal rule alignment.

widthInPercent

Use percent rather than pixel width.

heightInPercent

Use percent rather than pixel height; the percentage base is text width.

AddImage5 overloads
# AddImage · 1/5
C#
public void AddImage(Texture2D image, int width, int height, Color? color, InlineAlignment inlineAlign, Rect2? region);

Adds an inline image from a valid Texture2D with nonzero dimensions. Zero width/height uses natural sizing; specifying one side preserves aspect ratio. Pixel means pixels, Percent means percentages of available text width for both axes, and Em multiplies the current font size (one means one em). Supply a unique key for later updates. Content rather than a Push span: needs no extra Pop. Open a cell first when inside a table.

Parameters
NameTypeDefault
imageTexture2D—
widthint—
heightint—
colorColor?—
inlineAlignInlineAlignment—
regionRect2?—
image

Valid nonzero-sized Texture2D; required in UpdateImage when Texture is selected.

width

Nonnegative width in selected units; zero means automatic in AddImage and retain previous in UpdateImage.

height

Nonnegative height; Percent for images uses available text width.

color

Image modulation or the corresponding decoration color.

inlineAlign

Inline object alignment relative to the text row.

region

Texture region in pixels; an empty Rect2 uses the whole texture.

# AddImage · 2/5
C#
public void AddImage(Texture2D image, int width, int height, Color? color, InlineAlignment inlineAlign, Rect2? region, Variant key, bool pad, string tooltip, bool sizeInPercent);

Adds an inline image from a valid Texture2D with nonzero dimensions. Zero width/height uses natural sizing; specifying one side preserves aspect ratio. Pixel means pixels, Percent means percentages of available text width for both axes, and Em multiplies the current font size (one means one em). Supply a unique key for later updates. Content rather than a Push span: needs no extra Pop. Open a cell first when inside a table.

Parameters
NameTypeDefault
imageTexture2D—
widthint—
heightint—
colorColor?—
inlineAlignInlineAlignment—
regionRect2?—
keyVariant—
padbool—
tooltipstring—
sizeInPercentbool—
image

Valid nonzero-sized Texture2D; required in UpdateImage when Texture is selected.

width

Nonnegative width in selected units; zero means automatic in AddImage and retain previous in UpdateImage.

height

Nonnegative height; Percent for images uses available text width.

color

Image modulation or the corresponding decoration color.

inlineAlign

Inline object alignment relative to the text row.

region

Texture region in pixels; an empty Rect2 uses the whole texture.

key

Unique Variant update key. Equal keys update all matches; nil may match objects without explicit keys.

pad

Center the image in the allocated area without upscaling beyond natural size rather than stretching.

tooltip

Image tooltip text.

sizeInPercent

In the older overload, true selects percent units on both axes.

# AddImage · 3/5
C#
public void AddImage(Texture2D image, int width, int height, Color? color, InlineAlignment inlineAlign, Rect2? region, Variant key, bool pad, string tooltip, bool widthInPercent, bool heightInPercent, string altText);

Adds an inline image from a valid Texture2D with nonzero dimensions. Zero width/height uses natural sizing; specifying one side preserves aspect ratio. Pixel means pixels, Percent means percentages of available text width for both axes, and Em multiplies the current font size (one means one em). Supply a unique key for later updates. Content rather than a Push span: needs no extra Pop. Open a cell first when inside a table.

Parameters
NameTypeDefault
imageTexture2D—
widthint—
heightint—
colorColor?—
inlineAlignInlineAlignment—
regionRect2?—
keyVariant—
padbool—
tooltipstring—
widthInPercentbool—
heightInPercentbool—
altTextstring—
image

Valid nonzero-sized Texture2D; required in UpdateImage when Texture is selected.

width

Nonnegative width in selected units; zero means automatic in AddImage and retain previous in UpdateImage.

height

Nonnegative height; Percent for images uses available text width.

color

Image modulation or the corresponding decoration color.

inlineAlign

Inline object alignment relative to the text row.

region

Texture region in pixels; an empty Rect2 uses the whole texture.

key

Unique Variant update key. Equal keys update all matches; nil may match objects without explicit keys.

pad

Center the image in the allocated area without upscaling beyond natural size rather than stretching.

tooltip

Image tooltip text.

widthInPercent

Use percent rather than pixel width.

heightInPercent

Use percent rather than pixel height; the percentage base is text width.

altText

Image description for assistive technology rather than a visible caption.

# AddImage · 4/5
C#
public void AddImage(Texture2D image, int width, int height, Color? color, InlineAlignment inlineAlign, Rect2? region, Variant key, bool pad, string tooltip, bool sizeInPercent, string altText);

Adds an inline image from a valid Texture2D with nonzero dimensions. Zero width/height uses natural sizing; specifying one side preserves aspect ratio. Pixel means pixels, Percent means percentages of available text width for both axes, and Em multiplies the current font size (one means one em). Supply a unique key for later updates. Content rather than a Push span: needs no extra Pop. Open a cell first when inside a table.

Parameters
NameTypeDefault
imageTexture2D—
widthint—
heightint—
colorColor?—
inlineAlignInlineAlignment—
regionRect2?—
keyVariant—
padbool—
tooltipstring—
sizeInPercentbool—
altTextstring—
image

Valid nonzero-sized Texture2D; required in UpdateImage when Texture is selected.

width

Nonnegative width in selected units; zero means automatic in AddImage and retain previous in UpdateImage.

height

Nonnegative height; Percent for images uses available text width.

color

Image modulation or the corresponding decoration color.

inlineAlign

Inline object alignment relative to the text row.

region

Texture region in pixels; an empty Rect2 uses the whole texture.

key

Unique Variant update key. Equal keys update all matches; nil may match objects without explicit keys.

pad

Center the image in the allocated area without upscaling beyond natural size rather than stretching.

tooltip

Image tooltip text.

sizeInPercent

In the older overload, true selects percent units on both axes.

altText

Image description for assistive technology rather than a visible caption.

# AddImage · 5/5
C#
public void AddImage(Texture2D image, float width = 0f, float height = 0f, Color? color = default, InlineAlignment inlineAlign = InlineAlignment.Center, Rect2? region = default, Variant key = default, bool pad = false, string tooltip = "", RichTextLabel.ImageUnit widthUnit = RichTextLabel.ImageUnit.Pixel, RichTextLabel.ImageUnit heightUnit = RichTextLabel.ImageUnit.Pixel, string altText = "");

Adds an inline image from a valid Texture2D with nonzero dimensions. Zero width/height uses natural sizing; specifying one side preserves aspect ratio. Pixel means pixels, Percent means percentages of available text width for both axes, and Em multiplies the current font size (one means one em). Supply a unique key for later updates. Content rather than a Push span: needs no extra Pop. Open a cell first when inside a table.

Parameters
NameTypeDefault
imageTexture2D—
widthfloat0f
heightfloat0f
colorColor?default
inlineAlignInlineAlignmentInlineAlignment.Center
regionRect2?default
keyVariantdefault
padboolfalse
tooltipstring""
widthUnitRichTextLabel.ImageUnitRichTextLabel.ImageUnit.Pixel
heightUnitRichTextLabel.ImageUnitRichTextLabel.ImageUnit.Pixel
altTextstring""
image

Valid nonzero-sized Texture2D; required in UpdateImage when Texture is selected.

width

Nonnegative width in selected units; zero means automatic in AddImage and retain previous in UpdateImage.

height

Nonnegative height; Percent for images uses available text width.

color

Image modulation or the corresponding decoration color.

inlineAlign

Inline object alignment relative to the text row.

region

Texture region in pixels; an empty Rect2 uses the whole texture.

key

Unique Variant update key. Equal keys update all matches; nil may match objects without explicit keys.

pad

Center the image in the allocated area without upscaling beyond natural size rather than stretching.

tooltip

Image tooltip text.

widthUnit

Pixel, Percent or Em for width; UpdateImage applies it through the WidthUnit mask.

heightUnit

Height units; Percent uses area width and Em multiplies font size.

altText

Image description for assistive technology rather than a visible caption.

AddTextvoid
# AddText
C#
public void AddText(string text);

Adds literal text in the current formatting span. Square-bracket tags are not parsed. Suitable for user text inside Push/Pop without treating it as markup. Does not update Text; a table needs a cell before adding text directly.

Parameters
NameTypeDefault
textstring—
text

Source or literal text as defined by the method; AddText does not parse tags.

AppendTextvoid
# AppendText
C#
public void AppendText(string bbcode);

Parses a BBCode fragment and appends formatted content without a full reset. Does not append the fragment to Text. Use AddText for data intended to display literally. Keep tags balanced; Push/Pop is convenient for programmatic spans.

Parameters
NameTypeDefault
bbcodestring—
bbcode

BBCode to parse rather than literal text.

Clearvoid
# Clear
C#
public void Clear();

Removes constructed content and formatting spans, resetting selection and current text effects. Retains the stored source Text string; assign Text to an empty string to clear that. Does not clear registered CustomEffects.

Deselectvoid
# Deselect
C#
public void Deselect();

Clears current selection without changing text, scrolling or the SelectionEnabled setting.

GetAutowrapModeTextServer.AutowrapMode
# GetAutowrapMode
C#
public TextServer.AutowrapMode GetAutowrapMode();

Wrapping rule for available width: off, arbitrary or word-based. Changes display rows and metrics while retaining source Text. Give the label a layout width for predictable results.

Returns TextServer.AutowrapMode

Wrapping rule for available width: off, arbitrary or word-based. Changes display rows and metrics while retaining source Text. Give the label a layout width for predictable results.

GetAutowrapTrimFlagsTextServer.LineBreakFlag
# GetAutowrapTrimFlags
C#
public TextServer.LineBreakFlag GetAutowrapTrimFlags();

Flags for edge-whitespace/indent handling during wrapping. The setter retains only TextServer trim-mask bits; other LineBreakFlag values do not select a separate wrapping mode here. Source text is not trimmed.

Returns TextServer.LineBreakFlag

Flags for edge-whitespace/indent handling during wrapping. The setter retains only TextServer trim-mask bits; other LineBreakFlag values do not select a separate wrapping mode here. Source text is not trimmed.

GetCharacterLineint
# GetCharacterLine
C#
public int GetCharacterLine(int character);

Returns the display-row index containing a content position, or -1 when not found in calculated data. The character index is not an offset into source BBCode or UTF-16. With Threaded, read final metrics after IsFinished; changing text, width or fonts makes them pending again.

Parameters
NameTypeDefault
characterint—
character

Content position without tags, not a source Text UTF-16 index.

Returns int

Returns the display-row index containing a content position, or -1 when not found in calculated data. The character index is not an offset into source BBCode or UTF-16. With Threaded, read final metrics after IsFinished; changing text, width or fonts makes them pending again.

GetCharacterParagraphint
# GetCharacterParagraph
C#
public int GetCharacterParagraph(int character);

Returns a content position’s paragraph index, or -1. A paragraph may contain multiple wrapped display rows. With Threaded, read final metrics after IsFinished; changing text, width or fonts makes them pending again.

Parameters
NameTypeDefault
characterint—
character

Content position without tags, not a source Text UTF-16 index.

Returns int

Returns a content position’s paragraph index, or -1. A paragraph may contain multiple wrapped display rows. With Threaded, read final metrics after IsFinished; changing text, width or fonts makes them pending again.

GetContentHeightint
# GetContentHeight
C#
public int GetContentHeight();

Calculated content height in pixels including theme spacing. Not the scroll viewport height. With Threaded, read final metrics after IsFinished; changing text, width or fonts makes them pending again.

Returns int

Calculated content height in pixels including theme spacing. Not the scroll viewport height. With Threaded, read final metrics after IsFinished; changing text, width or fonts makes them pending again.

GetContentWidthint
# GetContentWidth
C#
public int GetContentWidth();

Calculated content width in control pixels rather than a Control size constraint. With Threaded, read final metrics after IsFinished; changing text, width or fonts makes them pending again.

Returns int

Calculated content width in control pixels rather than a Control size constraint. With Threaded, read final metrics after IsFinished; changing text, width or fonts makes them pending again.

GetEffectsReckfell.Collections.Array
# GetEffects
C#
public Reckfell.Collections.Array GetEffects();

Custom BBCode effect resources. The setter replaces the array and calls ReloadEffects; the getter shares the array, so mutating it does not itself reparse text. Duplicate names are ambiguous: the first matching name is used. Use PushCustomfx for direct programmatic application.

Returns Reckfell.Collections.Array

Custom BBCode effect resources. The setter replaces the array and calls ReloadEffects; the getter shares the array, so mutating it does not itself reparse text. Duplicate names are ambiguous: the first matching name is used. Use PushCustomfx for direct programmatic application.

GetHorizontalAlignmentHorizontalAlignment
# GetHorizontalAlignment
C#
public HorizontalAlignment GetHorizontalAlignment();

Default horizontal text alignment; local paragraph formatting may override it. Fill uses JustificationFlags for justification. Does not move the Control in its parent container.

Returns HorizontalAlignment

Default horizontal text alignment; local paragraph formatting may override it. Fill uses JustificationFlags for justification. Does not move the Control in its parent container.

GetJustificationFlagsTextServer.JustificationFlag
# GetJustificationFlags
C#
public TextServer.JustificationFlag GetJustificationFlags();

Line-stretching rules for justified text, such as word and final-line handling. Work with the corresponding alignment rather than setting label width.

Returns TextServer.JustificationFlag

Line-stretching rules for justified text, such as word and final-line handling. Work with the corresponding alignment rather than setting label width.

GetLanguagestring
# GetLanguage
C#
public string GetLanguage();

Language hint for text shaping and wrapping. Does not translate the string; UI translation of source Text is a separate mechanism.

Returns string

Language hint for text shaping and wrapping. Does not translate the string; UI translation of source Text is a separate mechanism.

GetLineCountint
# GetLineCount
C#
public int GetLineCount();

Number of calculated display rows in the main flow, including wrapping. Unlike TextEdit, not a file’s logical line count. Depends on width, fonts and reveal mode. With Threaded, read final metrics after IsFinished; changing text, width or fonts makes them pending again.

Returns int

Number of calculated display rows in the main flow, including wrapping. Unlike TextEdit, not a file’s logical line count. Depends on width, fonts and reveal mode. With Threaded, read final metrics after IsFinished; changing text, width or fonts makes them pending again.

GetLineHeightint
# GetLineHeight
C#
public int GetLineHeight(int line);

Display-row height: ascent + descent + theme line separation. Formatting can make heights differ between rows. Supply an existing index. With Threaded, read final metrics after IsFinished; changing text, width or fonts makes them pending again.

Parameters
NameTypeDefault
lineint—
line

Zero-based wrapped display-row index.

Returns int

Display-row height: ascent + descent + theme line separation. Formatting can make heights differ between rows. Supply an existing index. With Threaded, read final metrics after IsFinished; changing text, width or fonts makes them pending again.

GetLineOffsetfloat
# GetLineOffset
C#
public float GetLineOffset(int line);

Vertical display-row offset within content, in pixels. Neither a global screen position nor a coordinate already adjusted for scrolling. Validate the index first: zero is also a valid first-row offset.

Parameters
NameTypeDefault
lineint—
line

Zero-based wrapped display-row index.

Returns float

Vertical display-row offset within content, in pixels. Neither a global screen position nor a coordinate already adjusted for scrolling. Validate the index first: zero is also a valid first-row offset.

GetLineRangeVector2I
# GetLineRange
C#
public Vector2I GetLineRange(int line);

Content-position range for a calculated display row: X start, Y end. Not source-BBCode or UTF-16 indices. Validate zero <= line < GetLineCount first; (0, 0) is not a reliable error sentinel. With Threaded, read final metrics after IsFinished; changing text, width or fonts makes them pending again.

Parameters
NameTypeDefault
lineint—
line

Zero-based wrapped display-row index.

Returns Vector2I

Content-position range for a calculated display row: X start, Y end. Not source-BBCode or UTF-16 indices. Validate zero <= line < GetLineCount first; (0, 0) is not a reliable error sentinel. With Threaded, read final metrics after IsFinished; changing text, width or fonts makes them pending again.

GetLineWidthint
# GetLineWidth
C#
public int GetLineWidth(int line);

Pixel width of an existing calculated display row. Supply an index from zero through GetLineCount() - 1 rather than a paragraph index. With Threaded, read final metrics after IsFinished; changing text, width or fonts makes them pending again.

Parameters
NameTypeDefault
lineint—
line

Zero-based wrapped display-row index.

Returns int

Pixel width of an existing calculated display row. Supply an index from zero through GetLineCount() - 1 rather than a paragraph index. With Threaded, read final metrics after IsFinished; changing text, width or fonts makes them pending again.

GetMaximumFontSizeint
# GetMaximumFontSize
C#
public int GetMaximumFontSize();

Upper font-fitting bound with ResizeFontToFit. Keep consistent with MinimumFontSize; constrains fitting rather than universally prohibiting local BBCode font sizes.

Returns int

Upper font-fitting bound with ResizeFontToFit. Keep consistent with MinimumFontSize; constrains fitting rather than universally prohibiting local BBCode font sizes.

GetMenuPopupMenu
# GetMenu
C#
public PopupMenu GetMenu();

Returns the built-in PopupMenu, creating it on first access without showing it. The label owns and frees it; do not Free/Dispose this borrowed reference.

Returns PopupMenu

Returns the built-in PopupMenu, creating it on first access without showing it. The label owns and frees it; do not Free/Dispose this borrowed reference.

GetMinimumFontSizeint
# GetMinimumFontSize
C#
public int GetMinimumFontSize();

Lower font-fitting bound with ResizeFontToFit. Supply a positive value no greater than MaximumFontSize. Assignment does not mean this exact size is already drawn.

Returns int

Lower font-fitting bound with ResizeFontToFit. Supply a positive value no greater than MaximumFontSize. Assignment does not mean this exact size is already drawn.

GetParagraphCountint
# GetParagraphCount
C#
public int GetParagraphCount();

Number of paragraphs in the main content flow. Automatic wrapping within a paragraph does not create another paragraph. Not the number of all display rows or nested table cells.

Returns int

Number of paragraphs in the main content flow. Automatic wrapping within a paragraph does not create another paragraph. Not the number of all display rows or nested table cells.

GetParagraphOffsetfloat
# GetParagraphOffset
C#
public float GetParagraphOffset(int paragraph);

Calculated paragraph’s vertical offset in content pixels. Validate index and readiness; zero can mean either the start or an unavailable result.

Parameters
NameTypeDefault
paragraphint—
paragraph

Zero-based main-flow paragraph index.

Returns float

Calculated paragraph’s vertical offset in content pixels. Validate index and readiness; zero can mean either the start or an unavailable result.

GetParsedTextstring
# GetParsedText
C#
public string GetParsedText();

Returns plain text from constructed content without tags. Inline images become spaces; lists/indents may add tabs. Not a reverse conversion to source BBCode or a copy of Text.

Returns string

Returns plain text from constructed content without tags. Inline images become spaces; lists/indents may add tabs. Not a reverse conversion to source BBCode or a copy of Text.

GetProgressBarDelayint
# GetProgressBarDelay
C#
public int GetProgressBarDelay();

Delay before displaying background-loading progress, in milliseconds. A positive value waits that interval; zero and negative values disable the indicator. Does not set parsing speed or character-reveal timing.

Returns int

Delay before displaying background-loading progress, in milliseconds. A positive value waits that interval; zero and negative values disable the indicator. Does not set parsing speed or character-reveal timing.

GetRenderedFontSizeint
# GetRenderedFontSize
C#
public int GetRenderedFontSize();

Current calculated base-font fitting value. Does not describe every locally formatted span. Disabling fitting resets the cache to zero; do not use zero as a real size when creating another font.

Returns int

Current calculated base-font fitting value. Does not describe every locally formatted span. Disabling fitting resets the cache to zero; do not use zero as a real size when creating another font.

GetSelectedTextstring
# GetSelectedText
C#
public string GetSelectedText();

Returns selected plain text without tags, or an empty string when selection is absent/disabled. Inline images become spaces; tables are traversed as content. Not a slice of source Text containing BBCode.

Returns string

Returns selected plain text without tags, or an empty string when selection is absent/disabled. Inline images become spaces; tables are traversed as content. Not a slice of source Text containing BBCode.

GetSelectionFromint
# GetSelectionFrom
C#
public int GetSelectionFrom();

Returns the active selection’s starting content-model position, or -1. Not a source-BBCode or UTF-16 string index; use GetSelectedText to retrieve text, especially with tables and inline objects.

Returns int

Returns the active selection’s starting content-model position, or -1. Not a source-BBCode or UTF-16 string index; use GetSelectedText to retrieve text, especially with tables and inline objects.

GetSelectionLineOffsetfloat
# GetSelectionLineOffset
C#
public float GetSelectionLineOffset();

Vertical pixel offset of the selection start in content, accounting for wrapping and nested frames. -1 means no suitable selection. Neither a line number nor a global screen coordinate.

Returns float

Vertical pixel offset of the selection start in content, accounting for wrapping and nested frames. -1 means no suitable selection. Neither a line number nor a global screen coordinate.

GetSelectionToint
# GetSelectionTo
C#
public int GetSelectionTo();

Returns the active selection’s inclusive final position, or -1. For an ordinary content range, length is to - from + 1; unlike TextEdit’s exclusive endpoint. Do not use directly as a C# source-string slice index.

Returns int

Returns the active selection’s inclusive final position, or -1. For an ordinary content range, length is to - from + 1; unlike TextEdit’s exclusive endpoint. Do not use directly as a C# source-string slice index.

GetStructuredTextBidiOverrideTextServer.StructuredTextParser
# GetStructuredTextBidiOverride
C#
public TextServer.StructuredTextParser GetStructuredTextBidiOverride();

Selects parsing of structured bidirectional text, such as addresses or paths. A shaping setting rather than a regex replacement of source text. StructuredTextBidiOverrideOptions supplies parameters.

Returns TextServer.StructuredTextParser

Selects parsing of structured bidirectional text, such as addresses or paths. A shaping setting rather than a regex replacement of source text. StructuredTextBidiOverrideOptions supplies parameters.

GetStructuredTextBidiOverrideOptionsReckfell.Collections.Array
# GetStructuredTextBidiOverrideOptions
C#
public Reckfell.Collections.Array GetStructuredTextBidiOverrideOptions();

Structured BiDi-parser parameters. The array is shared; in-place mutation does not automatically trigger recalculation. Assign a new array with different content to update: the setter may skip equal content.

Returns Reckfell.Collections.Array

Structured BiDi-parser parameters. The array is shared; in-place mutation does not automatically trigger recalculation. Assign a new array with different content to update: the setter may skip equal content.

GetTabSizeint
# GetTabSize
C#
public int GetTabSize();

Default tab width measured in spaces; use a positive value. Changes tab presentation without replacing tabs with spaces in Text. Use TabStops for explicit positions.

Returns int

Default tab width measured in spaces; use a positive value. Changes tab presentation without replacing tabs with spaces in Text. Use TabStops for explicit positions.

GetTabStopsfloat[]
# GetTabStops
C#
public float[] GetTabStops();

Explicit tab positions in text-area pixels; supply increasing positive values. C# float[] transfers data and the getter returns values: mutating the result does not reconfigure the label. Does not set source-line indentation.

Returns float[]

Explicit tab positions in text-area pixels; supply increasing positive values. C# float[] transfers data and the getter returns values: mutating the result does not reconfigure the label. Does not set source-line indentation.

GetTextstring
# GetText
C#
public string GetText();

Source string for rebuilding the label, including UI translation and BBCode parsing when BbcodeEnabled. Assignment replaces manual content; assigning the same nonempty string may not rebuild it. AddText, AppendText and Push methods do not append their result to this property. Use GetParsedText for resulting plain text.

Returns string

Source string for rebuilding the label, including UI translation and BBCode parsing when BbcodeEnabled. Assignment replaces manual content; assigning the same nonempty string may not rebuild it. AddText, AppendText and Push methods do not append their result to this property. Use GetParsedText for resulting plain text.

GetTextDirectionControl.TextDirection
# GetTextDirection
C#
public Control.TextDirection GetTextDirection();

Text direction for BiDi shaping. Does not manually reverse source characters or translate text. Configure structured-text parsing separately.

Returns Control.TextDirection

Text direction for BiDi shaping. Does not manually reverse source characters or translate text. Configure structured-text parsing separately.

GetTotalCharacterCountint
# GetTotalCharacterCount
C#
public int GetTotalCharacterCount();

Counts content without BBCode tags: text code points, line breaks and one position per inline image. Not Text.Length, glyph count or the number of already visible letters. Use as a reveal limit rather than a source-BBCode slice index.

Returns int

Counts content without BBCode tags: text code points, line breaks and one position per inline image. Not Text.Length, glyph count or the number of already visible letters. Use as a reveal limit rather than a source-BBCode slice index.

GetVScrollBarVScrollBar
# GetVScrollBar
C#
public VScrollBar GetVScrollBar();

Returns the label-owned VScrollBar. Do not Free/Dispose it or reparent it. Its value uses content pixels; the usable range accounts for the scrollbar page size.

Returns VScrollBar

Returns the label-owned VScrollBar. Do not Free/Dispose it or reparent it. Its value uses content pixels; the usable range accounts for the scrollbar page size.

GetVerticalAlignmentVerticalAlignment
# GetVerticalAlignment
C#
public VerticalAlignment GetVerticalAlignment();

Vertical placement of text content inside the label. Does not change Control alignment in its parent or enable automatic scrolling.

Returns VerticalAlignment

Vertical placement of text content inside the label. Does not change Control alignment in its parent or enable automatic scrolling.

GetVisibleCharactersint
# GetVisibleCharacters
C#
public int GetVisibleCharacters();

Progressive-reveal limit: -1 shows all, zero hides text, a nonnegative value sets a limit. VisibleCharactersBehavior chooses behavior before/after glyph shaping. Not a frame count or Text’s UTF-16 Length. The setter updates VisibleRatio but does not explicitly clamp oversized values; keep animation values between zero and GetTotalCharacterCount.

Returns int

Progressive-reveal limit: -1 shows all, zero hides text, a nonnegative value sets a limit. VisibleCharactersBehavior chooses behavior before/after glyph shaping. Not a frame count or Text’s UTF-16 Length. The setter updates VisibleRatio but does not explicitly clamp oversized values; keep animation values between zero and GetTotalCharacterCount.

GetVisibleCharactersBehaviorTextServer.VisibleCharactersBehavior
# GetVisibleCharactersBehavior
C#
public TextServer.VisibleCharactersBehavior GetVisibleCharactersBehavior();

Chooses whether reveal limits apply before shaping or to shaped characters/glyphs. Before shaping may change layout; after shaping retains full-line context, with reveal units depending on mode. Account for ligatures, composite characters and RTL; do not assume one C# char per visible glyph.

Returns TextServer.VisibleCharactersBehavior

Chooses whether reveal limits apply before shaping or to shaped characters/glyphs. Before shaping may change layout; after shaping retains full-line context, with reveal units depending on mode. Account for ligatures, composite characters and RTL; do not assume one C# char per visible glyph.

GetVisibleContentRectRect2I
# GetVisibleContentRect
C#
public Rect2I GetVisibleContentRect();

Cached rectangle of drawn visible content in label coordinates. Neither full content size nor a screen rectangle. Before an updated draw, may be empty or belong to the previous frame; IsFinished alone does not update this cache.

Returns Rect2I

Cached rectangle of drawn visible content in label coordinates. Neither full content size nor a screen rectangle. Before an updated draw, may be empty or belong to the previous frame; IsFinished alone does not update this cache.

GetVisibleLineCountint
# GetVisibleLineCount
C#
public int GetVisibleLineCount();

Visible-row count from drawing results. Neither viewport row capacity nor total GetLineCount. Returns zero when Visible is false; after text/size changes, wait for an updated frame. IsFinished confirms calculation, not that a new frame exists.

Returns int

Visible-row count from drawing results. Neither viewport row capacity nor total GetLineCount. Returns zero when Visible is false; after text/size changes, wait for an updated frame. IsFinished confirms calculation, not that a new frame exists.

GetVisibleParagraphCountint
# GetVisibleParagraphCount
C#
public int GetVisibleParagraphCount();

Visible paragraph count from drawing, not wrapped row count. Requires a frame after content/scroll changes for a current result; returns zero when Visible is false.

Returns int

Visible paragraph count from drawing, not wrapped row count. Requires a frame after content/scroll changes for a current result; returns zero when Visible is false.

GetVisibleRatiofloat
# GetVisibleRatio
C#
public float GetVisibleRatio();

Reveal fraction: values from zero to one convert to integer VisibleCharacters by truncation. One or greater shows all; a negative value hides text. Creates no timer: animate the fraction from your application. Refers to the content counter rather than necessarily the number of visually distinct letters.

Returns float

Reveal fraction: values from zero to one convert to integer VisibleCharacters by truncation. One or greater shows all; a negative value hides text. Creates no timer: animate the fraction from your application. Refers to the content counter rather than necessarily the number of visually distinct letters.

InstallEffectvoid
# InstallEffect
C#
public void InstallEffect(Variant effect);

Appends a RichTextEffect resource to registered effects and calls ReloadEffects. Does not automatically replace an existing resource with the same tag name. The effect script defines its BBCode name; use PushCustomfx to bypass name lookup.

Parameters
NameTypeDefault
effectVariant—
effect

Valid RichTextEffect resource.

InvalidateParagraphbool
# InvalidateParagraph
C#
public bool InvalidateParagraph(int paragraph);

Marks shaping, sizing and font caches stale starting at the supplied paragraph. Does not remove it, change Text or fully reparse BBCode. true means an accepted index rather than completed recalculation; test IsFinished separately.

Parameters
NameTypeDefault
paragraphint—
paragraph

Main-flow paragraph index from zero through GetParagraphCount() - 1.

Returns bool

Marks shaping, sizing and font caches stale starting at the supplied paragraph. Does not remove it, change Text or fully reparse BBCode. true means an accepted index rather than completed recalculation; test IsFinished separately.

IsContextMenuEnabledbool
# IsContextMenuEnabled
C#
public bool IsContextMenuEnabled();

Allows opening the built-in user menu. false neither deletes the PopupMenu nor prohibits programmatic GetMenu/MenuOption. An interface setting rather than a restriction on application data copying.

Returns bool

Allows opening the built-in user menu. false neither deletes the PopupMenu nor prohibits programmatic GetMenu/MenuOption. An interface setting rather than a restriction on application data copying.

IsDeselectOnFocusLossEnabledbool
# IsDeselectOnFocusLossEnabled
C#
public bool IsDeselectOnFocusLossEnabled();

Allows deselection on focus loss. Switching false to true while unfocused immediately clears an existing selection. Use false to retain it when moving to another control.

Returns bool

Allows deselection on focus loss. Switching false to true while unfocused immediately clears an existing selection. Use false to retain it when moving to another control.

IsDragAndDropSelectionEnabledbool
# IsDragAndDropSelectionEnabled
C#
public bool IsDragAndDropSelectionEnabled();

Allows dragging selected plain text out of the label. Requires SelectionEnabled; does not enable editing or arbitrary file drops. Assignment does not initiate a drag.

Returns bool

Allows dragging selected plain text out of the label. Requires SelectionEnabled; does not enable editing or arbitrary file drops. Assignment does not initiate a drag.

IsFinishedbool
# IsFinished
C#
public bool IsFinished();

Tests whether current shaping, sizing and font calculations are complete. The query may itself initiate cache updates; neither a blocking wait nor a test of VisibleCharacters animation completion. When subscribing to Finished, account for text that may already be ready.

Returns bool

Tests whether current shaping, sizing and font calculations are complete. The query may itself initiate cache updates; neither a blocking wait nor a test of VisibleCharacters animation completion. When subscribing to Finished, account for text that may already be ready.

IsFitContentEnabledbool
# IsFitContentEnabled
C#
public bool IsFitContentEnabled();

Includes content in the label’s minimum size. A parent container may expand it; does not set an exact Size or shrink the font. Account for wrapping and parent constraints.

Returns bool

Includes content in the label’s minimum size. A parent container may expand it; does not set an exact Size or shrink the font. Account for wrapping and parent constraints.

IsHintUnderlinedbool
# IsHintUnderlined
C#
public bool IsHintUnderlined();

Allows visual underlining of PushHint spans. Does not enable/disable tooltip content or edit text.

Returns bool

Allows visual underlining of PushHint spans. Does not enable/disable tooltip content or edit text.

IsMenuVisiblebool
# IsMenuVisible
C#
public bool IsMenuVisible();

Tests the existing menu’s actual visibility without creating it. false before creation does not mean ContextMenuEnabled is disabled.

Returns bool

Tests the existing menu’s actual visibility without creating it. false before creation does not mean ContextMenuEnabled is disabled.

IsMetaUnderlinedbool
# IsMetaUnderlined
C#
public bool IsMetaUnderlined();

Allows underlining metadata spans according to their MetaUnderline policy. Does not create links or open URLs. An explicit PushUnderline span is separate formatting.

Returns bool

Allows underlining metadata spans according to their MetaUnderline policy. Does not create links or open URLs. An explicit PushUnderline span is separate formatting.

IsReadybool · Deprecated
# IsReady
C#
public bool IsReady();

Obsolete alias for IsFinished. Use IsFinished; this concerns layout readiness rather than entity lifecycle readiness or entering the tree.

Returns bool

Obsolete alias for IsFinished. Use IsFinished; this concerns layout readiness rather than entity lifecycle readiness or entering the tree.

IsResizeFontToFitEnabledbool
# IsResizeFontToFitEnabled
C#
public bool IsResizeFontToFitEnabled();

Allows choosing a base font size for the available area within MinimumFontSize–MaximumFontSize. Unlike FitContent, adjusts the font rather than the minimum-size requirement. Fitting depends on width and height; a tiny minimum does not ensure legibility.

Returns bool

Allows choosing a base font size for the available area within MinimumFontSize–MaximumFontSize. Unlike FitContent, adjusts the font rather than the minimum-size requirement. Fitting depends on width and height; a tiny minimum does not ensure legibility.

IsScrollActivebool
# IsScrollActive
C#
public bool IsScrollActive();

Allows built-in vertical scrolling. Toggling reapplies source Text: when mixed with manual AddText/Push, content may rebuild from the stored string. Set the mode before manual construction. Does not mean all content fits without a scrollbar.

Returns bool

Allows built-in vertical scrolling. Toggling reapplies source Text: when mixed with manual AddText/Push, content may rebuild from the stored string. Set the mode before manual construction. Does not mean all content fits without a scrollbar.

IsScrollFollowingbool
# IsScrollFollowing
C#
public bool IsScrollFollowing();

Allows following the end of appended text. If the user scrolls upward, actual following can pause until returning to the bottom. The getter reports the setting rather than whether the view is currently at the bottom.

Returns bool

Allows following the end of appended text. If the user scrolls upward, actual following can pause until returning to the bottom. The getter reports the setting rather than whether the view is currently at the bottom.

IsScrollFollowingVisibleCharactersbool
# IsScrollFollowingVisibleCharacters
C#
public bool IsScrollFollowingVisibleCharacters();

Scrolls to content revealed through VisibleCharacters. Differs from following the full text end; intended for progressive reveal. Setting true may immediately change scrolling.

Returns bool

Scrolls to content revealed through VisibleCharacters. Differs from following the full text end; intended for progressive reveal. Setting true may immediately change scrolling.

IsSelectionEnabledbool
# IsSelectionEnabled
C#
public bool IsSelectionEnabled();

Allows selecting displayed text and using SelectAll. Enabling sets FocusMode.All; disabling clears active selection and switches to accessibility focus mode. Does not make the label editable or change Text.

Returns bool

Allows selecting displayed text and using SelectAll. Enabling sets FocusMode.All; disabling clears active selection and switches to accessibility focus mode. Does not make the label editable or change Text.

IsShortcutKeysEnabledbool
# IsShortcutKeysEnabled
C#
public bool IsShortcutKeysEnabled();

Allows the label’s built-in command shortcuts. Does not automatically enable SelectionEnabled or prohibit direct SelectAll/MenuOption calls.

Returns bool

Allows the label’s built-in command shortcuts. Does not automatically enable SelectionEnabled or prohibit direct SelectAll/MenuOption calls.

IsThreadedbool
# IsThreaded
C#
public bool IsThreaded();

Allows background text layout; defaults to false. Does not make arbitrary RichTextLabel calls thread-safe or move all drawing to another thread. Check IsFinished; until completion, metrics may cover only the processed portion.

Returns bool

Allows background text layout; defaults to false. Does not make arbitrary RichTextLabel calls thread-safe or move all drawing to another thread. Check IsFinished; until completion, metrics may cover only the processed portion.

IsUsingBbcodebool
# IsUsingBbcode
C#
public bool IsUsingBbcode();

Controls BBCode parsing of the Text property. Does not make manual AddText parse markup; AppendText parses markup independently. Toggling does not guarantee rebuilding a manually modified stack.

Returns bool

Controls BBCode parsing of the Text property. Does not make manual AddText parse markup; AppendText parses markup independently. Toggling does not guarantee rebuilding a manually modified stack.

MenuOptionvoid
# MenuOption
C#
public void MenuOption(int option);

Executes an int MenuItems command ID rather than a menu row index. Copy copies selected text or, when empty, all GetParsedText even if SelectionEnabled is disabled. SelectAll requires selection permission. Does not open the menu; ContextMenuEnabled does not block a direct call.

Parameters
NameTypeDefault
optionint—
option

Numeric MenuItems command ID, not a PopupMenu index.

Newlinevoid
# Newline
C#
public void Newline();

Adds an explicit newline to constructed content and starts the next paragraph in the current frame. Does not update source Text; not automatic width-based wrapping.

ParseBbcodevoid
# ParseBbcode
C#
public void ParseBbcode(string bbcode);

Clears the displayed content and parses the supplied markup. A full parse rather than AppendText appending. Does not assign Text; set Text with BbcodeEnabled to retain the source string.

Parameters
NameTypeDefault
bbcodestring—
bbcode

BBCode to parse rather than literal text.

ParseExpressionsForValues2 overloads
# ParseExpressionsForValues · 1/2
C#
public Reckfell.Collections.Dictionary ParseExpressionsForValues(ReadOnlySpan<string> expressions);

Parses key=value parameters without executing code or mathematical expressions. Recognizes exact true/false, numbers, #RGB/#RRGGBB and $path as EntityPath; other values remain strings. Comma-separated values become an Array. An invalid number of = signs returns the Dictionary accumulated so far. Array and Span overloads use the same parser; do not assume arbitrary whitespace trimming.

Parameters
NameTypeDefault
expressionsReadOnlySpan<string>—
expressions

key=value parameters; commas separate values.

Returns Reckfell.Collections.Dictionary

Parses key=value parameters without executing code or mathematical expressions. Recognizes exact true/false, numbers, #RGB/#RRGGBB and $path as EntityPath; other values remain strings. Comma-separated values become an Array. An invalid number of = signs returns the Dictionary accumulated so far. Array and Span overloads use the same parser; do not assume arbitrary whitespace trimming.

# ParseExpressionsForValues · 2/2
C#
public Reckfell.Collections.Dictionary ParseExpressionsForValues(string[] expressions);

Parses key=value parameters without executing code or mathematical expressions. Recognizes exact true/false, numbers, #RGB/#RRGGBB and $path as EntityPath; other values remain strings. Comma-separated values become an Array. An invalid number of = signs returns the Dictionary accumulated so far. Array and Span overloads use the same parser; do not assume arbitrary whitespace trimming.

Parameters
NameTypeDefault
expressionsstring[]—
expressions

key=value parameters; commas separate values.

Returns Reckfell.Collections.Dictionary

Parses key=value parameters without executing code or mathematical expressions. Recognizes exact true/false, numbers, #RGB/#RRGGBB and $path as EntityPath; other values remain strings. Comma-separated values become an Array. An invalid number of = signs returns the Dictionary accumulated so far. Array and Span overloads use the same parser; do not assume arbitrary whitespace trimming.

Popvoid
# Pop
C#
public void Pop();

Closes one current formatting span while retaining its content. Call only after a corresponding Push: the root has no parent. Does not delete the last character.

PopAllvoid
# PopAll
C#
public void PopAll();

Returns the current construction span to the root without removing content. Resets the construction position rather than clearing text or reliably repairing malformed BBCode.

PopContextvoid
# PopContext
C#
public void PopContext();

Leaves nested spans through the nearest PushContext boundary. Without one, ascends to the root. Retains text already added.

PushBgcolorvoid
# PushBgcolor
C#
public void PushBgcolor(Color bgcolor);

Opens a rectangular background-color span behind text rather than changing glyph color through PushColor. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

Parameters
NameTypeDefault
bgcolorColor—
bgcolor

Fill color behind text.

PushBoldvoid
# PushBold
C#
public void PushBold();

Opens a theme bold-font span; combines with active italics. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

PushBoldItalicsvoid
# PushBoldItalics
C#
public void PushBoldItalics();

Opens a theme bold-italic font span. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

PushCellvoid
# PushCell
C#
public void PushCell();

Opens the next cell only when the current span is a table. Apply SetCell settings immediately, then add text/formatting; Pop returns to the table. Every column-count cells starts another row. A nested table may be opened within a cell.

PushColorvoid
# PushColor
C#
public void PushColor(Color color);

Opens a text-glyph color span, including alpha. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

Parameters
NameTypeDefault
colorColor—
color

Color for the corresponding text, outline or line.

PushContextvoid
# PushContext
C#
public void PushContext();

Places a context boundary for subsequent Push spans. PopContext closes nested spans through that boundary; does not undo text already added.

PushCustomfxvoid
# PushCustomfx
C#
public void PushCustomfx(RichTextEffect effect, Reckfell.Collections.Dictionary env);

Opens an effect span: call PushCustomfx, add text with AddText, then close it with Pop. Uses the resource directly without registering a BBCode tag. env is shared by reference; create a separate dictionary for independent parameters. Does not create text or apply the effect to already completed spans.

Parameters
NameTypeDefault
effectRichTextEffect—
envReckfell.Collections.Dictionary—
effect

Valid RichTextEffect resource.

env

Separate span-parameter dictionary retained by shared reference.

PushDropcapvoid
# PushDropcap
C#
public void PushDropcap(string @string, Font font, int size, Rect2? dropcapMargins = default, Color? color = default, int outlineSize = 0, Color? outlineColor = default);

Adds a decorative drop cap as standalone content: requires nonempty text, a valid Font and a positive size. Unlike ordinary Push spans, requires no corresponding Pop. Does not alter an existing first letter or append source Text.

Parameters
NameTypeDefault
stringstring—
fontFont—
sizeint—
dropcapMarginsRect2?default
colorColor?default
outlineSizeint0
outlineColorColor?default
string

Nonempty drop-cap text.

font

Valid shared Font resource.

size

Positive drop-cap pixel font size.

dropcapMargins

Drop-cap margins as Rect2.

color

Color for the corresponding text, outline or line.

outlineSize

Nonnegative outline width in pixels.

outlineColor

Drop-cap outline color.

PushFgcolorvoid
# PushFgcolor
C#
public void PushFgcolor(Color fgcolor);

Opens a foreground rectangular-color span over text. Use PushColor for ordinary letter color; an opaque foreground fill can cover letters. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

Parameters
NameTypeDefault
fgcolorColor—
fgcolor

Fill color over text.

PushFontvoid
# PushFont
C#
public void PushFont(Font font, int fontSize = 0);

Opens a span using a Font resource and optional size. The resource is shared; do not free a borrowed label resource. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

Parameters
NameTypeDefault
fontFont—
fontSizeint0
font

Valid shared Font resource.

fontSize

Pixel font size; zero in PushFont retains size according to the current rules.

PushFontSizevoid
# PushFontSize
C#
public void PushFontSize(int fontSize);

Opens a positive pixel font-size span while retaining the selected font. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

Parameters
NameTypeDefault
fontSizeint—
fontSize

Pixel font size; zero in PushFont retains size according to the current rules.

PushHintvoid
# PushHint
C#
public void PushHint(string description);

Opens a tooltip span for following content. Add text, then call Pop. Does not add a character or navigation handler.

Parameters
NameTypeDefault
descriptionstring—
description

Tooltip text for the following span.

PushIndentvoid
# PushIndent
C#
public void PushIndent(int level);

Opens an indentation span with a nonnegative level. Does not insert spaces into source Text. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

Parameters
NameTypeDefault
levelint—
level

Nonnegative indentation/list level.

PushItalicsvoid
# PushItalics
C#
public void PushItalics();

Opens a theme italic-font span; combines with active bold. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

PushLanguagevoid
# PushLanguage
C#
public void PushLanguage(string language);

Opens a text-shaping language-hint span. Does not translate its contents. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

Parameters
NameTypeDefault
languagestring—
language

Shaping language hint rather than a translation target.

PushList2 overloads
# PushList · 1/2
C#
public void PushList(int level, RichTextLabel.ListType type, bool capitalize);

Opens a list with a specified type and level. Add item text separated by Newline; bullets/numbering are presentation rather than source-BBCode characters. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

Parameters
NameTypeDefault
levelint—
typeRichTextLabel.ListType—
capitalizebool—
level

Nonnegative indentation/list level.

type

ListType bullet or numbering style.

capitalize

Use uppercase letters/Roman numerals.

# PushList · 2/2
C#
public void PushList(int level, RichTextLabel.ListType type, bool capitalize, string bullet = "\u2022");

Opens a list with a specified type and level. Add item text separated by Newline; bullets/numbering are presentation rather than source-BBCode characters. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

Parameters
NameTypeDefault
levelint—
typeRichTextLabel.ListType—
capitalizebool—
bulletstring"\u2022"
level

Nonnegative indentation/list level.

type

ListType bullet or numbering style.

capitalize

Use uppercase letters/Roman numerals.

bullet

Bullet-list marker string.

PushMeta3 overloads
# PushMeta · 1/3
C#
public void PushMeta(Variant data);

Opens a metadata span for following text; close it with Pop. data is passed to MetaClicked/MetaHoverStarted/MetaHoverEnded. It may be an ID or URL, but RichTextLabel does not open it automatically. underlineMode controls link appearance; tooltip supplies a hint.

Parameters
NameTypeDefault
dataVariant—
data

Span metadata as a Variant, such as an ID or URL.

# PushMeta · 2/3
C#
public void PushMeta(Variant data, RichTextLabel.MetaUnderline underlineMode);

Opens a metadata span for following text; close it with Pop. data is passed to MetaClicked/MetaHoverStarted/MetaHoverEnded. It may be an ID or URL, but RichTextLabel does not open it automatically. underlineMode controls link appearance; tooltip supplies a hint.

Parameters
NameTypeDefault
dataVariant—
underlineModeRichTextLabel.MetaUnderline—
data

Span metadata as a Variant, such as an ID or URL.

underlineMode

Metadata-span underline policy.

# PushMeta · 3/3
C#
public void PushMeta(Variant data, RichTextLabel.MetaUnderline underlineMode = RichTextLabel.MetaUnderline.Always, string tooltip = "");

Opens a metadata span for following text; close it with Pop. data is passed to MetaClicked/MetaHoverStarted/MetaHoverEnded. It may be an ID or URL, but RichTextLabel does not open it automatically. underlineMode controls link appearance; tooltip supplies a hint.

Parameters
NameTypeDefault
dataVariant—
underlineModeRichTextLabel.MetaUnderlineRichTextLabel.MetaUnderline.Always
tooltipstring""
data

Span metadata as a Variant, such as an ID or URL.

underlineMode

Metadata-span underline policy.

tooltip

Span tooltip text; an empty string supplies no explicit tooltip.

PushMonovoid
# PushMono
C#
public void PushMono();

Opens a theme monospace-font span. Does not enable code highlighting or language analysis. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

PushNormalvoid
# PushNormal
C#
public void PushNormal();

Opens a theme normal-font span. Does not reset every other color, indent or nested span. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

PushOutlineColorvoid
# PushOutlineColor
C#
public void PushOutlineColor(Color color);

Opens a glyph-outline color span. Does not itself set a nonzero outline width. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

Parameters
NameTypeDefault
colorColor—
color

Color for the corresponding text, outline or line.

PushOutlineSizevoid
# PushOutlineSize
C#
public void PushOutlineSize(int outlineSize);

Opens a pixel outline-width span; zero disables the outline in this span. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

Parameters
NameTypeDefault
outlineSizeint—
outlineSize

Nonnegative outline width in pixels.

PushParagraph3 overloads
# PushParagraph · 1/3
C#
public void PushParagraph(HorizontalAlignment alignment, Control.TextDirection baseDirection, string language, TextServer.StructuredTextParser stParser);

Opens paragraph settings: alignment, direction, language, BiDi parser, justification and tab positions. These configure content rather than a Control container. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

Parameters
NameTypeDefault
alignmentHorizontalAlignment—
baseDirectionControl.TextDirection—
languagestring—
stParserTextServer.StructuredTextParser—
alignment

Paragraph content horizontal alignment.

baseDirection

Base BiDi text direction.

language

Shaping language hint rather than a translation target.

stParser

Structured bidirectional-text parser mode.

# PushParagraph · 2/3
C#
public void PushParagraph(HorizontalAlignment alignment, Control.TextDirection baseDirection, string language, TextServer.StructuredTextParser stParser, TextServer.JustificationFlag justificationFlags, ReadOnlySpan<float> tabStops);

Opens paragraph settings: alignment, direction, language, BiDi parser, justification and tab positions. These configure content rather than a Control container. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

Parameters
NameTypeDefault
alignmentHorizontalAlignment—
baseDirectionControl.TextDirection—
languagestring—
stParserTextServer.StructuredTextParser—
justificationFlagsTextServer.JustificationFlag—
tabStopsReadOnlySpan<float>—
alignment

Paragraph content horizontal alignment.

baseDirection

Base BiDi text direction.

language

Shaping language hint rather than a translation target.

stParser

Structured bidirectional-text parser mode.

justificationFlags

Text-justification rule bits.

tabStops

Pixel tab-stop positions.

# PushParagraph · 3/3
C#
public void PushParagraph(HorizontalAlignment alignment, Control.TextDirection baseDirection = Control.TextDirection.Auto, string language = "", TextServer.StructuredTextParser stParser = TextServer.StructuredTextParser.Default, TextServer.JustificationFlag justificationFlags = TextServer.JustificationFlag.Kashida | TextServer.JustificationFlag.WordBound | TextServer.JustificationFlag.SkipLastLine | TextServer.JustificationFlag.DoNotSkipSingleLine, float[] tabStops = null);

Opens paragraph settings: alignment, direction, language, BiDi parser, justification and tab positions. These configure content rather than a Control container. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

Parameters
NameTypeDefault
alignmentHorizontalAlignment—
baseDirectionControl.TextDirectionControl.TextDirection.Auto
languagestring""
stParserTextServer.StructuredTextParserTextServer.StructuredTextParser.Default
justificationFlagsTextServer.JustificationFlagTextServer.JustificationFlag.Kashida | TextServer.JustificationFlag.WordBound | TextServer.JustificationFlag.SkipLastLine | TextServer.JustificationFlag.DoNotSkipSingleLine
tabStopsfloat[]null
alignment

Paragraph content horizontal alignment.

baseDirection

Base BiDi text direction.

language

Shaping language hint rather than a translation target.

stParser

Structured bidirectional-text parser mode.

justificationFlags

Text-justification rule bits.

tabStops

Pixel tab-stop positions.

PushStrikethrough2 overloads
# PushStrikethrough · 1/2
C#
public void PushStrikethrough();

Opens text strikethrough. Does not remove characters from GetParsedText or selection. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

# PushStrikethrough · 2/2
C#
public void PushStrikethrough(Color? color = default);

Opens text strikethrough. Does not remove characters from GetParsedText or selection. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

Parameters
NameTypeDefault
colorColor?default
color

Color for the corresponding text, outline or line.

PushTable2 overloads
# PushTable · 1/2
C#
public void PushTable(int columns, InlineAlignment inlineAlign, int alignToRow);

Opens a table with a positive column count. Configure columns, then for each cell call PushCell, add content and Pop the cell; another Pop after all cells closes the table. Cells fill in row order; there is no separate PushRow. alignToRow selects an alignment row, with -1 using the last. name supplies an accessibility description rather than a visible heading.

Parameters
NameTypeDefault
columnsint—
inlineAlignInlineAlignment—
alignToRowint—
columns

Positive table column count.

inlineAlign

Inline object alignment relative to the text row.

alignToRow

Zero-based alignment-row index; -1 selects the last.

# PushTable · 2/2
C#
public void PushTable(int columns, InlineAlignment inlineAlign = InlineAlignment.TopTo, int alignToRow = -1, string name = "");

Opens a table with a positive column count. Configure columns, then for each cell call PushCell, add content and Pop the cell; another Pop after all cells closes the table. Cells fill in row order; there is no separate PushRow. alignToRow selects an alignment row, with -1 using the last. name supplies an accessibility description rather than a visible heading.

Parameters
NameTypeDefault
columnsint—
inlineAlignInlineAlignmentInlineAlignment.TopTo
alignToRowint-1
namestring""
columns

Positive table column count.

inlineAlign

Inline object alignment relative to the text row.

alignToRow

Zero-based alignment-row index; -1 selects the last.

name

Accessibility name for a table/column rather than an inserted heading.

PushUnderline2 overloads
# PushUnderline · 1/2
C#
public void PushUnderline();

Opens text underlining. A color with alpha zero uses the current text color and theme alpha rather than drawing an invisible line. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

# PushUnderline · 2/2
C#
public void PushUnderline(Color? color = default);

Opens text underlining. A color with alpha zero uses the current text color and theme alpha rather than drawing an invisible line. Add content and close the span with Pop. Does not rewrite earlier items or source Text.

Parameters
NameTypeDefault
colorColor?default
color

Color for the corresponding text, outline or line.

ReloadEffectsvoid
# ReloadEffects
C#
public void ReloadEffects();

Reparses stored Text only when BBCode is enabled and the stack has not been externally modified. Not a universal reload for manually constructed spans: rebuild the required content explicitly.

RemoveParagraph2 overloads
# RemoveParagraph · 1/2
C#
public bool RemoveParagraph(int paragraph);

Removes a main-flow paragraph and its owned content, clearing selection. Later paragraph indices shift; removing the only one leaves empty content with one paragraph. Does not rewrite source Text and has no built-in Undo. noInvalidate false invalidates affected caches; true retains them for an optimized path requiring separate cache-freshness management. Returns false for an invalid index.

Parameters
NameTypeDefault
paragraphint—
paragraph

Main-flow paragraph index from zero through GetParagraphCount() - 1.

Returns bool

Removes a main-flow paragraph and its owned content, clearing selection. Later paragraph indices shift; removing the only one leaves empty content with one paragraph. Does not rewrite source Text and has no built-in Undo. noInvalidate false invalidates affected caches; true retains them for an optimized path requiring separate cache-freshness management. Returns false for an invalid index.

# RemoveParagraph · 2/2
C#
public bool RemoveParagraph(int paragraph, bool noInvalidate = false);

Removes a main-flow paragraph and its owned content, clearing selection. Later paragraph indices shift; removing the only one leaves empty content with one paragraph. Does not rewrite source Text and has no built-in Undo. noInvalidate false invalidates affected caches; true retains them for an optimized path requiring separate cache-freshness management. Returns false for an invalid index.

Parameters
NameTypeDefault
paragraphint—
noInvalidateboolfalse
paragraph

Main-flow paragraph index from zero through GetParagraphCount() - 1.

noInvalidate

Retain caches for the optimized path; normally use false.

Returns bool

Removes a main-flow paragraph and its owned content, clearing selection. Later paragraph indices shift; removing the only one leaves empty content with one paragraph. Does not rewrite source Text and has no built-in Undo. noInvalidate false invalidates affected caches; true retains them for an optimized path requiring separate cache-freshness management. Returns false for an invalid index.

ScrollToLinevoid
# ScrollToLine
C#
public void ScrollToLine(int line);

Scrolls to a wrapped display row rather than a logical source-BBCode line. Values <= zero go to the start; an oversized index goes to the end of available layout. Wait for readiness first when an exact position is needed.

Parameters
NameTypeDefault
lineint—
line

Zero-based wrapped display-row index.

ScrollToParagraphvoid
# ScrollToParagraph
C#
public void ScrollToParagraph(int paragraph);

Scrolls to a main-flow paragraph. Values <= zero go to the start; values beyond calculated paragraphs go to the scrollbar end. Does not select or edit text.

Parameters
NameTypeDefault
paragraphint—
paragraph

Zero-based main-flow paragraph index.

ScrollToSelectionvoid
# ScrollToSelection
C#
public void ScrollToSelection();

Scrolls to the current selection start using GetSelectionLineOffset. Does nothing without a selection. Does not create selection or edit content.

SelectAllvoid
# SelectAll
C#
public void SelectAll();

Selects constructed content when SelectionEnabled. Does not copy to the clipboard. With background layout, wait for IsFinished so selection bounds cover ready content.

SetAutowrapModevoid
# SetAutowrapMode
C#
public void SetAutowrapMode(TextServer.AutowrapMode autowrapMode);

Wrapping rule for available width: off, arbitrary or word-based. Changes display rows and metrics while retaining source Text. Give the label a layout width for predictable results.

Parameters
NameTypeDefault
autowrapModeTextServer.AutowrapMode—
autowrapMode

Wrapping mode for available width.

SetAutowrapTrimFlagsvoid
# SetAutowrapTrimFlags
C#
public void SetAutowrapTrimFlags(TextServer.LineBreakFlag autowrapTrimFlags);

Flags for edge-whitespace/indent handling during wrapping. The setter retains only TextServer trim-mask bits; other LineBreakFlag values do not select a separate wrapping mode here. Source text is not trimmed.

Parameters
NameTypeDefault
autowrapTrimFlagsTextServer.LineBreakFlag—
autowrapTrimFlags

Edge-whitespace/indent bits; only the trim mask is retained.

SetCellBorderColorvoid
# SetCellBorderColor
C#
public void SetCellBorderColor(Color color);

Sets only the current cell’s border color. Color(0,0,0,0) restores the theme color, so does not guarantee hiding a nonzero theme border. Configure directly in the cell before opening nested Push spans.

Parameters
NameTypeDefault
colorColor—
color

Image modulation or the corresponding decoration color.

SetCellPaddingvoid
# SetCellPadding
C#
public void SetCellPadding(Rect2 padding);

Sets current-cell padding: Rect2.Position.X/Y are left/top, Rect2.Size.X/Y are right/bottom. Packs four edge values rather than an ordinary width/height rectangle. Use nonnegative values and configure immediately after PushCell.

Parameters
NameTypeDefault
paddingRect2—
padding

Rect2(left, top, right, bottom) padding values in pixels.

SetCellRowBackgroundColorvoid
# SetCellRowBackgroundColor
C#
public void SetCellRowBackgroundColor(Color oddRowBg, Color evenRowBg);

Sets two background colors for the current cell; drawing chooses one according to table-row parity. Does not automatically recolor other cells in the row. Color(0,0,0,0) restores the corresponding theme background.

Parameters
NameTypeDefault
oddRowBgColor—
evenRowBgColor—
oddRowBg

This cell’s odd-row background; zero Color restores the theme.

evenRowBg

This cell’s even-row background; zero Color restores the theme.

SetCellSizeOverridevoid
# SetCellSizeOverride
C#
public void SetCellSizeOverride(Vector2 minSize, Vector2 maxSize);

Stores current-cell size constraints. Current layout consumes positive Y values as minimum/maximum height; X does not set column width. A nonpositive Y leaves that bound unset. In a multi-paragraph cell, Y bounds calculated individual paragraph heights rather than their sum. Configure columns for width and keep bounds consistent. Call immediately after PushCell.

Parameters
NameTypeDefault
minSizeVector2—
maxSizeVector2—
minSize

In current layout, positive Y bounds height below; X does not set width.

maxSize

In current layout, positive Y bounds height above; <= zero leaves it unset.

SetContextMenuEnabledvoid
# SetContextMenuEnabled
C#
public void SetContextMenuEnabled(bool enabled);

Allows opening the built-in user menu. false neither deletes the PopupMenu nor prohibits programmatic GetMenu/MenuOption. An interface setting rather than a restriction on application data copying.

Parameters
NameTypeDefault
enabledbool—
enabled

Enable the described interaction setting.

SetDeselectOnFocusLossEnabledvoid
# SetDeselectOnFocusLossEnabled
C#
public void SetDeselectOnFocusLossEnabled(bool enable);

Allows deselection on focus loss. Switching false to true while unfocused immediately clears an existing selection. Use false to retain it when moving to another control.

Parameters
NameTypeDefault
enablebool—
enable

Enable the described interaction setting.

SetDragAndDropSelectionEnabledvoid
# SetDragAndDropSelectionEnabled
C#
public void SetDragAndDropSelectionEnabled(bool enable);

Allows dragging selected plain text out of the label. Requires SelectionEnabled; does not enable editing or arbitrary file drops. Assignment does not initiate a drag.

Parameters
NameTypeDefault
enablebool—
enable

Enable the described interaction setting.

SetEffectsvoid
# SetEffects
C#
public void SetEffects(Reckfell.Collections.Array effects);

Custom BBCode effect resources. The setter replaces the array and calls ReloadEffects; the getter shares the array, so mutating it does not itself reparse text. Duplicate names are ambiguous: the first matching name is used. Use PushCustomfx for direct programmatic application.

Parameters
NameTypeDefault
effectsReckfell.Collections.Array—
effects

RichTextEffect resources for registered tags.

SetFitContentvoid
# SetFitContent
C#
public void SetFitContent(bool enabled);

Includes content in the label’s minimum size. A parent container may expand it; does not set an exact Size or shrink the font. Account for wrapping and parent constraints.

Parameters
NameTypeDefault
enabledbool—
enabled

Enable the described layout setting.

SetHintUnderlinevoid
# SetHintUnderline
C#
public void SetHintUnderline(bool enable);

Allows visual underlining of PushHint spans. Does not enable/disable tooltip content or edit text.

Parameters
NameTypeDefault
enablebool—
enable

Enable the described interaction setting.

SetHorizontalAlignmentvoid
# SetHorizontalAlignment
C#
public void SetHorizontalAlignment(HorizontalAlignment alignment);

Default horizontal text alignment; local paragraph formatting may override it. Fill uses JustificationFlags for justification. Does not move the Control in its parent container.

Parameters
NameTypeDefault
alignmentHorizontalAlignment—
alignment

Text alignment inside the label.

SetJustificationFlagsvoid
# SetJustificationFlags
C#
public void SetJustificationFlags(TextServer.JustificationFlag justificationFlags);

Line-stretching rules for justified text, such as word and final-line handling. Work with the corresponding alignment rather than setting label width.

Parameters
NameTypeDefault
justificationFlagsTextServer.JustificationFlag—
justificationFlags

Text-justification rule bits.

SetLanguagevoid
# SetLanguage
C#
public void SetLanguage(string language);

Language hint for text shaping and wrapping. Does not translate the string; UI translation of source Text is a separate mechanism.

Parameters
NameTypeDefault
languagestring—
language

Language hint code for text shaping.

SetMaximumFontSizevoid
# SetMaximumFontSize
C#
public void SetMaximumFontSize(int size);

Upper font-fitting bound with ResizeFontToFit. Keep consistent with MinimumFontSize; constrains fitting rather than universally prohibiting local BBCode font sizes.

Parameters
NameTypeDefault
sizeint—
size

Positive font-fitting bound consistent with the other bound.

SetMetaUnderlinevoid
# SetMetaUnderline
C#
public void SetMetaUnderline(bool enable);

Allows underlining metadata spans according to their MetaUnderline policy. Does not create links or open URLs. An explicit PushUnderline span is separate formatting.

Parameters
NameTypeDefault
enablebool—
enable

Enable the described interaction setting.

SetMinimumFontSizevoid
# SetMinimumFontSize
C#
public void SetMinimumFontSize(int size);

Lower font-fitting bound with ResizeFontToFit. Supply a positive value no greater than MaximumFontSize. Assignment does not mean this exact size is already drawn.

Parameters
NameTypeDefault
sizeint—
size

Positive font-fitting bound consistent with the other bound.

SetProgressBarDelayvoid
# SetProgressBarDelay
C#
public void SetProgressBarDelay(int delayMs);

Delay before displaying background-loading progress, in milliseconds. A positive value waits that interval; zero and negative values disable the indicator. Does not set parsing speed or character-reveal timing.

Parameters
NameTypeDefault
delayMsint—
delayMs

Positive delay in milliseconds; <= zero disables the indicator.

SetResizeFontToFitvoid
# SetResizeFontToFit
C#
public void SetResizeFontToFit(bool enabled);

Allows choosing a base font size for the available area within MinimumFontSize–MaximumFontSize. Unlike FitContent, adjusts the font rather than the minimum-size requirement. Fitting depends on width and height; a tiny minimum does not ensure legibility.

Parameters
NameTypeDefault
enabledbool—
enabled

Enable the described layout setting.

SetScrollActivevoid
# SetScrollActive
C#
public void SetScrollActive(bool active);

Allows built-in vertical scrolling. Toggling reapplies source Text: when mixed with manual AddText/Push, content may rebuild from the stored string. Set the mode before manual construction. Does not mean all content fits without a scrollbar.

Parameters
NameTypeDefault
activebool—
active

Allow built-in vertical scrolling.

SetScrollFollowvoid
# SetScrollFollow
C#
public void SetScrollFollow(bool follow);

Allows following the end of appended text. If the user scrolls upward, actual following can pause until returning to the bottom. The getter reports the setting rather than whether the view is currently at the bottom.

Parameters
NameTypeDefault
followbool—
follow

Enable the corresponding scroll-follow mode.

SetScrollFollowVisibleCharactersvoid
# SetScrollFollowVisibleCharacters
C#
public void SetScrollFollowVisibleCharacters(bool follow);

Scrolls to content revealed through VisibleCharacters. Differs from following the full text end; intended for progressive reveal. Setting true may immediately change scrolling.

Parameters
NameTypeDefault
followbool—
follow

Enable the corresponding scroll-follow mode.

SetSelectionEnabledvoid
# SetSelectionEnabled
C#
public void SetSelectionEnabled(bool enabled);

Allows selecting displayed text and using SelectAll. Enabling sets FocusMode.All; disabling clears active selection and switches to accessibility focus mode. Does not make the label editable or change Text.

Parameters
NameTypeDefault
enabledbool—
enabled

Enable the described interaction setting.

SetShortcutKeysEnabledvoid
# SetShortcutKeysEnabled
C#
public void SetShortcutKeysEnabled(bool enabled);

Allows the label’s built-in command shortcuts. Does not automatically enable SelectionEnabled or prohibit direct SelectAll/MenuOption calls.

Parameters
NameTypeDefault
enabledbool—
enabled

Enable the described interaction setting.

SetStructuredTextBidiOverridevoid
# SetStructuredTextBidiOverride
C#
public void SetStructuredTextBidiOverride(TextServer.StructuredTextParser parser);

Selects parsing of structured bidirectional text, such as addresses or paths. A shaping setting rather than a regex replacement of source text. StructuredTextBidiOverrideOptions supplies parameters.

Parameters
NameTypeDefault
parserTextServer.StructuredTextParser—
parser

Structured BiDi-text parser mode.

SetStructuredTextBidiOverrideOptionsvoid
# SetStructuredTextBidiOverrideOptions
C#
public void SetStructuredTextBidiOverrideOptions(Reckfell.Collections.Array args);

Structured BiDi-parser parameters. The array is shared; in-place mutation does not automatically trigger recalculation. Assign a new array with different content to update: the setter may skip equal content.

Parameters
NameTypeDefault
argsReckfell.Collections.Array—
args

Parser parameters; retained by shared reference.

SetTabSizevoid
# SetTabSize
C#
public void SetTabSize(int spaces);

Default tab width measured in spaces; use a positive value. Changes tab presentation without replacing tabs with spaces in Text. Use TabStops for explicit positions.

Parameters
NameTypeDefault
spacesint—
spaces

Positive tab width in spaces.

SetTabStops2 overloads
# SetTabStops · 1/2
C#
public void SetTabStops(ReadOnlySpan<float> tabStops);

Explicit tab positions in text-area pixels; supply increasing positive values. C# float[] transfers data and the getter returns values: mutating the result does not reconfigure the label. Does not set source-line indentation.

Parameters
NameTypeDefault
tabStopsReadOnlySpan<float>—
tabStops

Increasing positive tab positions in pixels.

# SetTabStops · 2/2
C#
public void SetTabStops(float[] tabStops);

Explicit tab positions in text-area pixels; supply increasing positive values. C# float[] transfers data and the getter returns values: mutating the result does not reconfigure the label. Does not set source-line indentation.

Parameters
NameTypeDefault
tabStopsfloat[]—
tabStops

Increasing positive tab positions in pixels.

SetTableColumnExpand2 overloads
# SetTableColumnExpand · 1/2
C#
public void SetTableColumnExpand(int column, bool expand, int ratio);

Configures the current open table; call before PushCell or after popping a cell. column is zero-based; ratio is a positive relative weight rather than pixels or percentages. expand allows space distribution; shrink true caps stretching at the content’s natural maximum, false permits more free width. Does not guarantee fixed fractions of the whole table: minima/maxima matter. The short overload uses shrink true.

Parameters
NameTypeDefault
columnint—
expandbool—
ratioint—
column

Zero-based existing column index.

expand

Participate in table-width distribution.

ratio

Positive relative stretch weight.

# SetTableColumnExpand · 2/2
C#
public void SetTableColumnExpand(int column, bool expand, int ratio = 1, bool shrink = true);

Configures the current open table; call before PushCell or after popping a cell. column is zero-based; ratio is a positive relative weight rather than pixels or percentages. expand allows space distribution; shrink true caps stretching at the content’s natural maximum, false permits more free width. Does not guarantee fixed fractions of the whole table: minima/maxima matter. The short overload uses shrink true.

Parameters
NameTypeDefault
columnint—
expandbool—
ratioint1
shrinkbooltrue
column

Zero-based existing column index.

expand

Participate in table-width distribution.

ratio

Positive relative stretch weight.

shrink

Cap stretching at the content’s natural maximum.

SetTableColumnNamevoid
# SetTableColumnName
C#
public void SetTableColumnName(int column, string name);

Sets the current table’s accessibility column name. Does not insert a visible heading row: create its cells separately. Requires the table span rather than a cell/font span.

Parameters
NameTypeDefault
columnint—
namestring—
column

Zero-based existing column index.

name

Accessibility name for a table/column rather than an inserted heading.

SetTextvoid
# SetText
C#
public void SetText(string text);

Source string for rebuilding the label, including UI translation and BBCode parsing when BbcodeEnabled. Assignment replaces manual content; assigning the same nonempty string may not rebuild it. AddText, AppendText and Push methods do not append their result to this property. Use GetParsedText for resulting plain text.

Parameters
NameTypeDefault
textstring—
text

Source or literal text as defined by the method; AddText does not parse tags.

SetTextDirectionvoid
# SetTextDirection
C#
public void SetTextDirection(Control.TextDirection direction);

Text direction for BiDi shaping. Does not manually reverse source characters or translate text. Configure structured-text parsing separately.

Parameters
NameTypeDefault
directionControl.TextDirection—
direction

Text-shaping direction rather than a string-edit command.

SetThreadedvoid
# SetThreaded
C#
public void SetThreaded(bool threaded);

Allows background text layout; defaults to false. Does not make arbitrary RichTextLabel calls thread-safe or move all drawing to another thread. Check IsFinished; until completion, metrics may cover only the processed portion.

Parameters
NameTypeDefault
threadedbool—
threaded

Allow background layout calculation.

SetUseBbcodevoid
# SetUseBbcode
C#
public void SetUseBbcode(bool enable);

Controls BBCode parsing of the Text property. Does not make manual AddText parse markup; AppendText parses markup independently. Toggling does not guarantee rebuilding a manually modified stack.

Parameters
NameTypeDefault
enablebool—
enable

Enable BBCode parsing of Text.

SetVerticalAlignmentvoid
# SetVerticalAlignment
C#
public void SetVerticalAlignment(VerticalAlignment alignment);

Vertical placement of text content inside the label. Does not change Control alignment in its parent or enable automatic scrolling.

Parameters
NameTypeDefault
alignmentVerticalAlignment—
alignment

Text alignment inside the label.

SetVisibleCharactersvoid
# SetVisibleCharacters
C#
public void SetVisibleCharacters(int amount);

Progressive-reveal limit: -1 shows all, zero hides text, a nonnegative value sets a limit. VisibleCharactersBehavior chooses behavior before/after glyph shaping. Not a frame count or Text’s UTF-16 Length. The setter updates VisibleRatio but does not explicitly clamp oversized values; keep animation values between zero and GetTotalCharacterCount.

Parameters
NameTypeDefault
amountint—
amount

Reveal limit; -1 shows all, zero hides text.

SetVisibleCharactersBehaviorvoid
# SetVisibleCharactersBehavior
C#
public void SetVisibleCharactersBehavior(TextServer.VisibleCharactersBehavior behavior);

Chooses whether reveal limits apply before shaping or to shaped characters/glyphs. Before shaping may change layout; after shaping retains full-line context, with reveal units depending on mode. Account for ligatures, composite characters and RTL; do not assume one C# char per visible glyph.

Parameters
NameTypeDefault
behaviorTextServer.VisibleCharactersBehavior—
behavior

Text-system VisibleCharactersBehavior mode.

SetVisibleRatiovoid
# SetVisibleRatio
C#
public void SetVisibleRatio(float ratio);

Reveal fraction: values from zero to one convert to integer VisibleCharacters by truncation. One or greater shows all; a negative value hides text. Creates no timer: animate the fraction from your application. Refers to the content counter rather than necessarily the number of visually distinct letters.

Parameters
NameTypeDefault
ratiofloat—
ratio

Fraction from zero to one; one or greater shows all.

UpdateImage3 overloads
# UpdateImage · 1/3
C#
public void UpdateImage(Variant key, RichTextLabel.ImageUpdateMask mask, Texture2D image, int width, int height, Color? color, InlineAlignment inlineAlign, Rect2? region, bool pad, string tooltip, bool sizeInPercent);

Updates every inline image with an equal key, including nested tables; does not create a new item. Only mask-selected fields change. With Size, a zero side retains the prior requested dimension rather than resetting to automatic sizing. WidthUnit changes both axis units. To apply region to an ordinary texture, also supply Texture and the source resource: Region without Texture changes cropping only for an existing AtlasTexture. Does not rewrite source Text.

Parameters
NameTypeDefault
keyVariant—
maskRichTextLabel.ImageUpdateMask—
imageTexture2D—
widthint—
heightint—
colorColor?—
inlineAlignInlineAlignment—
regionRect2?—
padbool—
tooltipstring—
sizeInPercentbool—
key

Unique Variant update key. Equal keys update all matches; nil may match objects without explicit keys.

mask

ImageUpdateMask bits selecting changed fields. WidthUnit changes both-axis units; Size replaces requested numeric dimensions.

image

Valid nonzero-sized Texture2D; required in UpdateImage when Texture is selected.

width

Nonnegative width in selected units; zero means automatic in AddImage and retain previous in UpdateImage.

height

Nonnegative height; Percent for images uses available text width.

color

Image modulation or the corresponding decoration color.

inlineAlign

Inline object alignment relative to the text row.

region

Texture region in pixels; an empty Rect2 uses the whole texture.

pad

Center the image in the allocated area without upscaling beyond natural size rather than stretching.

tooltip

Image tooltip text.

sizeInPercent

In the older overload, true selects percent units on both axes.

# UpdateImage · 2/3
C#
public void UpdateImage(Variant key, RichTextLabel.ImageUpdateMask mask, Texture2D image, int width, int height, Color? color, InlineAlignment inlineAlign, Rect2? region, bool pad, string tooltip, bool widthInPercent, bool heightInPercent);

Updates every inline image with an equal key, including nested tables; does not create a new item. Only mask-selected fields change. With Size, a zero side retains the prior requested dimension rather than resetting to automatic sizing. WidthUnit changes both axis units. To apply region to an ordinary texture, also supply Texture and the source resource: Region without Texture changes cropping only for an existing AtlasTexture. Does not rewrite source Text.

Parameters
NameTypeDefault
keyVariant—
maskRichTextLabel.ImageUpdateMask—
imageTexture2D—
widthint—
heightint—
colorColor?—
inlineAlignInlineAlignment—
regionRect2?—
padbool—
tooltipstring—
widthInPercentbool—
heightInPercentbool—
key

Unique Variant update key. Equal keys update all matches; nil may match objects without explicit keys.

mask

ImageUpdateMask bits selecting changed fields. WidthUnit changes both-axis units; Size replaces requested numeric dimensions.

image

Valid nonzero-sized Texture2D; required in UpdateImage when Texture is selected.

width

Nonnegative width in selected units; zero means automatic in AddImage and retain previous in UpdateImage.

height

Nonnegative height; Percent for images uses available text width.

color

Image modulation or the corresponding decoration color.

inlineAlign

Inline object alignment relative to the text row.

region

Texture region in pixels; an empty Rect2 uses the whole texture.

pad

Center the image in the allocated area without upscaling beyond natural size rather than stretching.

tooltip

Image tooltip text.

widthInPercent

Use percent rather than pixel width.

heightInPercent

Use percent rather than pixel height; the percentage base is text width.

# UpdateImage · 3/3
C#
public void UpdateImage(Variant key, RichTextLabel.ImageUpdateMask mask, Texture2D image, float width = 0f, float height = 0f, Color? color = default, InlineAlignment inlineAlign = InlineAlignment.Center, Rect2? region = default, bool pad = false, string tooltip = "", RichTextLabel.ImageUnit widthUnit = RichTextLabel.ImageUnit.Pixel, RichTextLabel.ImageUnit heightUnit = RichTextLabel.ImageUnit.Pixel);

Updates every inline image with an equal key, including nested tables; does not create a new item. Only mask-selected fields change. With Size, a zero side retains the prior requested dimension rather than resetting to automatic sizing. WidthUnit changes both axis units. To apply region to an ordinary texture, also supply Texture and the source resource: Region without Texture changes cropping only for an existing AtlasTexture. Does not rewrite source Text.

Parameters
NameTypeDefault
keyVariant—
maskRichTextLabel.ImageUpdateMask—
imageTexture2D—
widthfloat0f
heightfloat0f
colorColor?default
inlineAlignInlineAlignmentInlineAlignment.Center
regionRect2?default
padboolfalse
tooltipstring""
widthUnitRichTextLabel.ImageUnitRichTextLabel.ImageUnit.Pixel
heightUnitRichTextLabel.ImageUnitRichTextLabel.ImageUnit.Pixel
key

Unique Variant update key. Equal keys update all matches; nil may match objects without explicit keys.

mask

ImageUpdateMask bits selecting changed fields. WidthUnit changes both-axis units; Size replaces requested numeric dimensions.

image

Valid nonzero-sized Texture2D; required in UpdateImage when Texture is selected.

width

Nonnegative width in selected units; zero means automatic in AddImage and retain previous in UpdateImage.

height

Nonnegative height; Percent for images uses available text width.

color

Image modulation or the corresponding decoration color.

inlineAlign

Inline object alignment relative to the text row.

region

Texture region in pixels; an empty Rect2 uses the whole texture.

pad

Center the image in the allocated area without upscaling beyond natural size rather than stretching.

tooltip

Image tooltip text.

widthUnit

Pixel, Percent or Em for width; UpdateImage applies it through the WidthUnit mask.

heightUnit

Height units; Percent uses area width and Em multiplies font size.

Signals and events4

FinishedEvent
# Finished
C#
public event Action Finished;

Signals completion of a text-layout calculation. Does not mean a frame has been drawn, an animation ended or future edits need no new calculation. With Threaded, emitted from the worker path; defer changes to other UI controls onto the main thread.

MetaClickedEvent
# MetaClicked
C#
public event RichTextLabel.MetaClickedEventHandler MetaClicked;

Supplies metadata for an activated link span. The application decides whether to open a URL, show help or perform an action. Metadata is a Variant, not necessarily a string; check the expected type first.

Handler parameters
NameTypeDefault
metaVariant—
meta

The span metadata; check its expected Variant type.

MetaHoverEndedEvent
# MetaHoverEnded
C#
public event RichTextLabel.MetaHoverEndedEventHandler MetaHoverEnded;

Supplies metadata for the span whose hover ended. Use it to clear application hint/highlight state.

Handler parameters
NameTypeDefault
metaVariant—
meta

The span metadata; check its expected Variant type.

MetaHoverStartedEvent
# MetaHoverStarted
C#
public event RichTextLabel.MetaHoverStartedEventHandler MetaHoverStarted;

Supplies span metadata when hover begins. Does not mean link navigation or a text-selection change.

Handler parameters
NameTypeDefault
metaVariant—
meta

The span metadata; check its expected Variant type.

RichTextLabel.ImageUnit

ValueDescription
Em = 2

Images drawn with this unit will be in percentages of the surrounding font size.

Percent = 1

Images drawn with this unit will be in percentages of the control width.

Pixel = 0

Images drawn with this unit will be in pixels.

RichTextLabel.ImageUpdateMask

ValueDescription
Alignment = 8

If this bit is set, RichTextLabel.UpdateImage changes image inline alignment.

Color = 4

If this bit is set, RichTextLabel.UpdateImage changes image color.

Pad = 32

If this bit is set, RichTextLabel.UpdateImage changes image padding.

Region = 16

If this bit is set, RichTextLabel.UpdateImage changes image texture region.

Size = 2

If this bit is set, RichTextLabel.UpdateImage changes image size.

Texture = 1

If this bit is set, RichTextLabel.UpdateImage changes image texture.

Tooltip = 64

If this bit is set, RichTextLabel.UpdateImage changes image tooltip.

WidthUnit = 128

If this bit is set, RichTextLabel.UpdateImage changes the units used to calculate image size.

RichTextLabel.ListType

ValueDescription
Dots = 3

Each list item has a filled circle marker.

Letters = 1

Each list item has a letter marker.

Numbers = 0

Each list item has a number marker.

Roman = 2

Each list item has a roman number marker.

RichTextLabel.MenuItems

ValueDescription
Copy = 0

Copies the selected text.

Max = 2

Represents the size of the RichTextLabel.MenuItems enum.

SelectAll = 1

Selects the whole RichTextLabel text.

RichTextLabel.MetaUnderline

ValueDescription
Always = 1

If RichTextLabel.MetaUnderlined is true, meta tag always display an underline.

Never = 0

Meta tag does not display an underline, even if RichTextLabel.MetaUnderlined is true.

OnHover = 2

If RichTextLabel.MetaUnderlined is true, meta tag display an underline when the mouse cursor is over it.

Theme properties

These are Theme resource keys, not C# properties. Use the matching Control GetTheme…() and AddTheme…Override() methods for each value type.

Key and typeDescription
default_color
Color

The default text color.

Default: Color(1, 1, 1, 1)
font_outline_color
Color

The default tint of text outline.

Default: Color(0, 0, 0, 1)
font_selected_color
Color

The color of selected text, used when RichTextLabel.SelectionEnabled is true. If equal to Color(0, 0, 0, 0), it will be ignored.

Default: Color(0, 0, 0, 0)
font_shadow_color
Color

The color of the font's shadow.

Default: Color(0, 0, 0, 0)
selection_color
Color

The color of the selection box.

Default: Color(0.1, 0.1, 1, 0.8)
table_border
Color

The default cell border color.

Default: Color(0, 0, 0, 0)
table_even_row_bg
Color

The default background color for even rows.

Default: Color(0, 0, 0, 0)
table_odd_row_bg
Color

The default background color for odd rows.

Default: Color(0, 0, 0, 0)
line_separation
int

Additional vertical spacing between lines (in pixels), spacing is added to line descent. This value can be negative.

Default: 0
outline_size
int

The size of the text outline. Note: If using a font with FontFile.MultichannelSignedDistanceField enabled, its FontFile.MsdfPixelRange must be set to at least twice the value of RichTextLabel.outline_size for outline rendering to look correct. Otherwise, the outline may appear to be cut off earlier than intended.

Default: 0
paragraph_separation
int

Additional vertical spacing between paragraphs (in pixels). Spacing is added after the last line. This value can be negative.

Default: 0
shadow_offset_x
int

The horizontal offset of the font's shadow.

Default: 1
shadow_offset_y
int

The vertical offset of the font's shadow.

Default: 1
shadow_outline_size
int

The size of the shadow outline.

Default: 1
strikethrough_alpha
int

The default strikethrough color transparency (percent). For strikethroughs with a custom color, this theme item is only used if the custom color's alpha is 0.0 (fully transparent).

Default: 50
table_h_separation
int

The horizontal separation of elements in a table.

Default: 3
table_v_separation
int

The vertical separation of elements in a table.

Default: 3
text_highlight_h_padding
int

The horizontal padding around boxes drawn by the [fgcolor] and [bgcolor] tags. This does not affect the appearance of text selection. To avoid any risk of neighboring highlights overlapping each other, set this to 0 to disable padding.

Default: 3
text_highlight_v_padding
int

The vertical padding around boxes drawn by the [fgcolor] and [bgcolor] tags. This does not affect the appearance of text selection. To avoid any risk of neighboring highlights overlapping each other, set this to 0 to disable padding.

Default: 3
underline_alpha
int

The default underline color transparency (percent). For underlines with a custom color, this theme item is only used if the custom color's alpha is 0.0 (fully transparent).

Default: 50
bold_font
Font

The font used for bold text.

bold_italics_font
Font

The font used for bold italics text.

italics_font
Font

The font used for italics text.

mono_font
Font

The font used for monospace text.

normal_font
Font

The default text font.

bold_font_size
int

The font size used for bold text.

bold_italics_font_size
int

The font size used for bold italics text.

italics_font_size
int

The font size used for italics text.

mono_font_size
int

The font size used for monospace text.

normal_font_size
int

The default text font size.

horizontal_rule
Texture2D

The horizontal rule texture.

focus
StyleBox

The background used when the RichTextLabel is focused. The RichTextLabel.focus StyleBox is displayed over the base StyleBox, so a partially transparent StyleBox should be used to ensure the base StyleBox remains visible. A StyleBox that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a StyleBoxEmpty resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.

normal
StyleBox

The normal background for the RichTextLabel.

Reckfell Engine documentationBack to top ↑
QUICK LINKSGetting startedEntity hierarchyC# & .NET 10Scenes and prefabs
Reckfell guides and full API K
reckfellENGINE
RECKFELL ACCOUNT

Sign in

Sign in to your Reckfell account.

One account for the entire Reckfell platform.