Rich​Text​Block Rich​Text​Block Rich​Text​Block Class

Definition

Represents a rich text display container that supports formatted text, hyperlinks, inline images, and other rich content. RichTextBlock supports a built-in overflow model.

public sealed class RichTextBlock : FrameworkElement, IRichTextBlock, IRichTextBlock2, IRichTextBlock3, IRichTextBlock4public sealed class RichTextBlock : FrameworkElement, IRichTextBlock, IRichTextBlock2, IRichTextBlock3, IRichTextBlock4Public NotInheritable Class RichTextBlock Inherits FrameworkElement Implements IRichTextBlock, IRichTextBlock2, IRichTextBlock3, IRichTextBlock4
<RichTextBlock .../>
-or-
<RichTextBlock ...>
  blocksContent
</RichTextBlock>
Inheritance
Attributes
Windows 10 requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)

Inherited Members

Inherited properties

Inherited events

Inherited methods

Remarks

The RichTextBlock control displays read-only text, and provides several features for advanced text layout. Use a RichTextBlock when you need support for paragraphs, inline UI elements, or overflow text.

TextBlock provides a simpler content model, so it’s typically easier to use, and it can provide better text rendering performance than RichTextBlock. It also provides many of the same formatting options for customizing how your text is rendered. However, RichTextBlock provides several unique features that TextBlock doesn’t provide.

For more info and examples, see the RichTextBlock control guide.

Paragraphs and formatting

The content property of RichTextBlock is the Blocks property, which is based on the Paragraph element. Set the indentation for paragraphs by setting the TextIndent property.

You can use text elements and the attached properties of the Typography class to apply character and paragraph formatting to the text in the RichTextBlock. For example, you can apply Bold, Italic, and Underline to any portion of the text in the control.

Inline UI elements

You can use an InlineUIContainer in the content of a RichTextBlock to embed elements that are derived from UIElement, such as images, in your text.

Overflow content

You can use a RichTextBlock with RichTextBlockOverflow elements to create advanced page layouts, such as multi-column text. The content for a RichTextBlockOverflow element always comes from a RichTextBlock element. You link RichTextBlockOverflow elements by setting them as the OverflowContentTarget of a RichTextBlock or another RichTextBlockOverflow.

Font fallback

The default FontFamily for RichTextBlock is Segoe UI and the default FontSize is 15 device-independent pixel (DIP). By default, RichTextBlock utilizes a font fallback mechanism to show glyphs that are not included in the specified font. If the glyph that is needed in a RichTextBlock is not available in the specified font, the font fallback mechanism goes through a list of fonts on the system to try and display the required characters in a different font.

Examples

This example shows a RichTextBlock with text selection and text wrapping enabled.

In XAML, the creation of content elements is implicit, so you can add the text directly to the Paragraph element, and the Paragraph directly to the RichTextBlock element.

In code, you have to explicitly create each Run element, set its Text property, and add it to the Paragraph.Inlines collection. Then, add each Paragraph to the RichTextBlock.Blocks collection.

<RichTextBlock IsTextSelectionEnabled="True" TextWrapping="Wrap" Width="200" >
    <Paragraph>
        This is some sample text to show the wrapping behavior.
    </Paragraph>
</RichTextBlock>
// Create a RichTextBlock, a Paragraph and a Run.
RichTextBlock richTextBlock = new RichTextBlock();
Paragraph paragraph = new Paragraph();
Run run = new Run();

// Customize some properties on the RichTextBlock.
richTextBlock.IsTextSelectionEnabled = true;
richTextBlock.TextWrapping = TextWrapping.Wrap;
run.Text = "This is some sample text to show the wrapping behavior.";
richTextBlock.Width = 200;

// Add the Run to the Paragraph, the Paragraph to the RichTextBlock.
paragraph.Inlines.Add(run);
richTextBlock.Blocks.Add(paragraph);

// Add the RichTextBlock to the visual tree (assumes stackPanel is decalred in XAML).
stackPanel.Children.Add(richTextBlock);

This example shows a RichTextBlock with customization of FontWeight, FontFamily, FontStyle, Foreground, and SelectionHighlightColor for a single run of text.

In XAML, the creation of content elements is implicit, so you can add the text directly to the Paragraph element, and the Paragraph directly to the RichTextBlock element.

In code, you have to explicitly create each Run element, set its Text property, and add it to the Paragraph.Inlines collection. Then, add each Paragraph to the RichTextBlock.Blocks collection.

<RichTextBlock IsTextSelectionEnabled="True" SelectionHighlightColor="Pink" 
               FontWeight="Light" FontFamily="Arial" FontStyle="Italic" 
               Foreground="Blue">
    <Paragraph>
        This is some sample text to demonstrate some properties.
    </Paragraph>
</RichTextBlock>
// Create a RichTextBlock, a Paragraph and a Run.
RichTextBlock richTextBlock = new RichTextBlock();
Paragraph paragraph = new Paragraph();
Run run = new Run();

// Customize some properties on the RichTextBlock.
richTextBlock.IsTextSelectionEnabled = true;
richTextBlock.SelectionHighlightColor = new SolidColorBrush(Windows.UI.Colors.Pink);
richTextBlock.Foreground = new SolidColorBrush(Windows.UI.Colors.Blue);
richTextBlock.FontWeight = Windows.UI.Text.FontWeights.Light;
richTextBlock.FontFamily = new FontFamily("Arial");
richTextBlock.FontStyle = Windows.UI.Text.FontStyle.Italic;
run.Text = "This is some sample text to demonstrate some properties.";

//Add the Run to the Paragraph, the Paragraph to the RichTextBlock.
paragraph.Inlines.Add(run);
richTextBlock.Blocks.Add(paragraph);

// Add the RichTextBlock to the visual tree (assumes stackPanel is decalred in XAML).
stackPanel.Children.Add(richTextBlock);

This example shows a RichTextBlock with customization of FontWeight, FontFamily, FontStyle, Foreground, and SelectionHighlightColor for different runs of text.

In XAML, the creation of content elements is implicit, so you can add the text directly to the Paragraph element, and the Paragraph directly to the RichTextBlock element.

In code, you have to explicitly create each Run element, set its Text property, and add it to the Paragraph.Inlines collection. Then, add each Paragraph to the RichTextBlock.Blocks collection.

<RichTextBlock IsTextSelectionEnabled="True" SelectionHighlightColor="Pink" FontFamily="Arial"  >
    <Paragraph>
        <Run Foreground="Blue" FontWeight="Light" Text="This is some" ></Run>
        <Span FontWeight="SemiBold">
            <Run FontStyle="Italic">sample text to</Run>
            <Run Foreground="Red">demonstrate some properties.</Run>
        </Span>
    </Paragraph>
</RichTextBlock>
RichTextBlock richTextBlock = new RichTextBlock();
richTextBlock.IsTextSelectionEnabled = true;
richTextBlock.SelectionHighlightColor = new SolidColorBrush(Windows.UI.Colors.Pink);
richTextBlock.FontFamily = new FontFamily("Arial");

Paragraph paragraph = new Paragraph();
Run run = new Run();
run.Foreground = new SolidColorBrush(Windows.UI.Colors.Blue);
run.FontWeight = Windows.UI.Text.FontWeights.Light;
run.Text = "This is some";

Span span = new Span();
span.FontWeight = Windows.UI.Text.FontWeights.SemiBold;

Run run1 = new Run();
run1.FontStyle = Windows.UI.Text.FontStyle.Italic;
run1.Text = " sample text to ";

Run run2 = new Run();
run2.Foreground = new SolidColorBrush(Windows.UI.Colors.Red);
run2.Text = " demonstrate some properties";

span.Inlines.Add(run1);
span.Inlines.Add(run2);
paragraph.Inlines.Add(run);
paragraph.Inlines.Add(span);
richTextBlock.Blocks.Add(paragraph);

// Add the RichTextBlock to the visual tree (assumes stackPanel is decalred in XAML).
stackPanel.Children.Add(richTextBlock);

Here, a RichTextBlock targets a RichTextBlockOverflow element to create a multi-column text layout. The first RichTextBlockOverflow element then targets a second RichTextBlockOverflow element that receives its content overflow. The controlling layout factor for how the text overflow is calculated is the constrained Width and Height of the parent Grid, and the ColumnDefinition settings that divide the Grid into three equal columns of 300 pixels height/width. Overflow is also affected by FontSize and many other text formatting properties that change characters in the text.

<Grid x:Name="columnGrid" Background="White" Width="900" Height="300">
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <RichTextBlock Grid.Column="0" IsTextSelectionEnabled="True" TextAlignment="Justify" 
                   OverflowContentTarget="{Binding ElementName=firstOverflowContainer}" 
                   TextIndent="12"
                   FontSize="12" FontFamily="Segoe UI" Foreground="#2a2a2a" Margin="20,0">
        <Paragraph>
            <Bold><Span Foreground="DarkSlateBlue" FontSize="16">Lorem ipsum dolor sit amet</Span></Bold>, consectetur adipiscing elit. Sed ac mi ipsum. Phasellus vel malesuada mauris. Donec pharetra, enim sit amet mattis tincidunt, felis nisi semper lectus, vel porta diam nisi in augue. Pellentesque lacus tortor, aliquam et faucibus id, rhoncus ut justo. Sed id lectus odio, eget pulvinar diam. Suspendisse eleifend ornare libero, in luctus purus aliquet non. Sed interdum, sem vitae rutrum rhoncus, felis ligula ultrices sem, in eleifend eros ante id neque. Vivamus quam lorem, varius vitae porta mollis, placerat quis est. Aenean eget sagittis massa. Sed tellus turpis, ullamcorper eget imperdiet vel, faucibus vel nisl. Nunc sed suscipit quam. Vivamus convallis faucibus dignissim. Fusce sollicitudin, quam vel cursus mattis, nisl velit tristique sapien, ac vestibulum ante arcu a nisl. Vestibulum commodo gravida ante at tincidunt. Vestibulum in ornare nunc. Nullam ut lorem vitae dui placerat lacinia sit amet a arcu. Nulla sit amet odio nisi. Praesent erat urna, venenatis ac adipiscing vel, congue at lectus. Proin ac metus at quam luctus ultricies.
        </Paragraph>
        <Paragraph>
            <Italic>This is an inline image.</Italic>
            <InlineUIContainer>
                <Border Background="Black">
                    <Image Source="Assets/SmallLogo.png" Height="30" Width="30"/>
                </Border>
            </InlineUIContainer> 
            Nam vitae ligula non ligula suscipit semper. Duis sed nulla metus, id hendrerit velit. Curabitur dolor purus, bibendum eu cursus lacinia, interdum vel augue. Aenean euismod eros et sapien vehicula dictum. Duis ullamcorper, turpis nec feugiat tincidunt, dui erat luctus risus, aliquam accumsan lacus est vel quam. Nunc lacus massa, varius eget accumsan id, congue sed orci. Duis dignissim hendrerit egestas. Proin ut turpis magna, sit amet porta erat. Nunc semper metus nec magna imperdiet nec vestibulum dui fringilla. Sed sed ante libero, nec porttitor mi. Ut luctus, neque vitae placerat egestas, urna leo auctor magna, sit amet ultricies ipsum felis quis sapien. Proin eleifend varius dui, at vestibulum nunc consectetur nec. Mauris nulla elit, ultrices a sodales non, aliquam ac est. Quisque sit amet risus nulla. Quisque vestibulum posuere velit, vitae vestibulum eros scelerisque sit amet. In in risus est, at laoreet dolor. Nullam aliquet pellentesque convallis. Ut vel tincidunt nulla. Mauris auctor tincidunt auctor.
        </Paragraph>
    </RichTextBlock>
    <RichTextBlockOverflow x:Name="firstOverflowContainer" Grid.Column="1" Margin="20,0"
                           OverflowContentTarget="{Binding ElementName=secondOverflowContainer}"/>
    <RichTextBlockOverflow x:Name="secondOverflowContainer" Grid.Column="2" Margin="20,0"/>
</Grid>

Constructors

RichTextBlock() RichTextBlock() RichTextBlock()

Initializes a new instance of the RichTextBlock class.

public RichTextBlock()public RichTextBlock()Public Sub New()
Attributes

Properties

BaselineOffset BaselineOffset BaselineOffset

Gets a value that represents the offset in pixels from the top of the content to the baseline of the first paragraph. The baseline of the paragraph is the baseline of the first line in it.

public double BaselineOffset { get; }public double BaselineOffset { get; }Public ReadOnly Property BaselineOffset As double
Value
double double double

The computed baseline for the first paragraph, or 0 if the RichTextBlock is empty.

Attributes

Blocks Blocks Blocks

Gets the contents of the RichTextBlock.

public BlockCollection Blocks { get; }public BlockCollection Blocks { get; }Public ReadOnly Property Blocks As BlockCollection
<RichTextBlock ...>
blocksContent
</RichTextBlock>
Value
BlockCollection BlockCollection BlockCollection

A BlockCollection that contains the contents of the RichTextBlock.

Attributes

CharacterSpacing CharacterSpacing CharacterSpacing

Gets or sets the uniform spacing between characters, in units of 1/1000 of an em.

public int CharacterSpacing { get; set; }public int CharacterSpacing { get; set; }Public ReadWrite Property CharacterSpacing As int
<RichTextBlock CharacterSpacing="int"/>
Value
int int int

The uniform spacing between characters, in units of 1/1000 of an em. The default is 0. Positive values increase tracking and loosen character spacing. Negative values decrease tracking and tighten the character spacing.

Attributes

Remarks

Tracking is the typographic term for an amount of space added or removed between all pairs of characters in a portion of text. This feature can be accessed through the CharacterSpacing property on TextBlock and RichTextBlock. CharacterSpacing is measured in 1/1000 of an "em". One "em" is equivalent to the current font size of the control. For example, an additional 14 pixels will be inserted between each character in a text control with FontSize="14" and CharacterSpacing="1000".

Examples

To see an example, see scenario 1, "Tracking (character spacing)", of the XAML text display sample.

See Also

CharacterSpacingProperty CharacterSpacingProperty CharacterSpacingProperty

Identifies the CharacterSpacing dependency property.

public static DependencyProperty CharacterSpacingProperty { get; }public static DependencyProperty CharacterSpacingProperty { get; }Public Static ReadOnly Property CharacterSpacingProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the CharacterSpacing dependency property.

Attributes

ContentEnd ContentEnd ContentEnd

Gets a TextPointer that indicates the end of content in the RichTextBlock.

public TextPointer ContentEnd { get; }public TextPointer ContentEnd { get; }Public ReadOnly Property ContentEnd As TextPointer
Value
TextPointer TextPointer TextPointer

A TextPointer that indicates the end of content in the RichTextBlock.

Attributes

ContentStart ContentStart ContentStart

Gets a TextPointer that indicates the start of content in the RichTextBlock.

public TextPointer ContentStart { get; }public TextPointer ContentStart { get; }Public ReadOnly Property ContentStart As TextPointer
Value
TextPointer TextPointer TextPointer

A TextPointer that indicates the start of content in the RichTextBlock.

Attributes

FontFamily FontFamily FontFamily

Gets or sets the preferred top-level font family for the text content in this element.

public FontFamily FontFamily { get; set; }public FontFamily FontFamily { get; set; }Public ReadWrite Property FontFamily As FontFamily
<RichTextBlock FontFamily="fontFamily" />
-or-
<RichTextBlock FontFamily="fontFamilyName[,fallbackFontFamilyName]" />
-or-
<RichTextBlock FontFamily="fontURI#fontFamily" />
Value
FontFamily FontFamily FontFamily

A FontFamily object that specifies the preferred font family, or a primary preferred font family with one or more fallback font families. For information about defaults, see the FontFamily class topic.

Attributes

Remarks

Set the FontFamily property to specify the default font family to use for all text in the RichTextBlock. You can override this value for specific text elements in the RichTextBlock by setting the TextElement.FontFamily property.

FontFamilyProperty FontFamilyProperty FontFamilyProperty

Identifies the FontFamily dependency property.

public static DependencyProperty FontFamilyProperty { get; }public static DependencyProperty FontFamilyProperty { get; }Public Static ReadOnly Property FontFamilyProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the FontFamily dependency property.

Attributes

FontSize FontSize FontSize

Gets or sets the font size for the text content in this element.

public double FontSize { get; set; }public double FontSize { get; set; }Public ReadWrite Property FontSize As double
<RichTextBlock FontSize="double" .../>
Value
double double double

A non-negative value that specifies the font size, measured in pixels. The default is 11.

Attributes

Remarks

Set the FontSize property to specify the default font size to use for all text in the RichTextBlock. You can override this value for specific text elements in the RichTextBlock by setting the TextElement.FontSize property.

FontSizeProperty FontSizeProperty FontSizeProperty

Identifies the FontSize dependency property.

public static DependencyProperty FontSizeProperty { get; }public static DependencyProperty FontSizeProperty { get; }Public Static ReadOnly Property FontSizeProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the FontSize dependency property.

Attributes

FontStretch FontStretch FontStretch

Gets or sets the font stretch for the text content in this element.

public FontStretch FontStretch { get; set; }public FontStretch FontStretch { get; set; }Public ReadWrite Property FontStretch As FontStretch
<RichTextBlock FontStretch="fontStretchMemberName"/>
Value
FontStretch FontStretch FontStretch

The requested font stretch, as a FontStretch constant. The default is Normal.

Attributes

Remarks

Set the FontStretch property to specify the default font stretch to use for all text in the RichTextBlock. You can override this value for specific text elements in the RichTextBlock by setting the TextElement.FontStretch property.

FontStretchProperty FontStretchProperty FontStretchProperty

Identifies the FontStretch dependency property.

public static DependencyProperty FontStretchProperty { get; }public static DependencyProperty FontStretchProperty { get; }Public Static ReadOnly Property FontStretchProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the FontStretch dependency property.

Attributes

FontStyle FontStyle FontStyle

Gets or sets the font style for the content in this element.

public FontStyle FontStyle { get; set; }public FontStyle FontStyle { get; set; }Public ReadWrite Property FontStyle As FontStyle
<RichTextBlock FontStyle="fontStyleMemberName"/>
Value
FontStyle FontStyle FontStyle

The requested font style, which is a FontStyle enumeration named constant. The default is Normal.

Attributes

Remarks

Set the FontStyle property to specify the default font stretch to use for all text in the RichTextBlock. You can override this value for specific text elements in the RichTextBlock by setting the TextElement.FontStyle property.

FontStyleProperty FontStyleProperty FontStyleProperty

Identifies the FontStyle dependency property.

public static DependencyProperty FontStyleProperty { get; }public static DependencyProperty FontStyleProperty { get; }Public Static ReadOnly Property FontStyleProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the FontStyle dependency property.

Attributes

FontWeight FontWeight FontWeight

Gets or sets the top-level font weight for the RichTextBlock.

public FontWeight FontWeight { get; set; }public FontWeight FontWeight { get; set; }Public ReadWrite Property FontWeight As FontWeight
<RichTextBlock FontWeight="fontWeightsMemberName"/>
Value
FontWeight FontWeight FontWeight

The requested font weight, which is a FontWeight that is obtained from one of the FontWeights property values. The default is Normal.

Attributes

Remarks

Set the FontWeight property to specify the default font stretch to use for all text in the RichTextBlock. You can override this value for specific text elements in the RichTextBlock by setting the TextElement.FontWeight property.

FontWeightProperty FontWeightProperty FontWeightProperty

Identifies the FontWeight dependency property.

public static DependencyProperty FontWeightProperty { get; }public static DependencyProperty FontWeightProperty { get; }Public Static ReadOnly Property FontWeightProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the FontWeight dependency property.

Attributes

Foreground Foreground Foreground

Gets or sets the Brush to apply to the text contents of the RichTextBlock.

public Brush Foreground { get; set; }public Brush Foreground { get; set; }Public ReadWrite Property Foreground As Brush
<RichTextBlock Foreground="{StaticResource resourceName}"/>

Value
Brush Brush Brush

The brush used to apply to the text contents. The default is a null brush from a pure code perspective, but the default text styles set this to Black (for Light theme) or White (for Dark theme) for a TextBlock element in UI.

Attributes

Remarks

Set the Foreground property to specify the default brush to use for all text in the RichTextBlock. You can override this value for specific text elements (such as a Run ) in the RichTextBlock by setting the TextElement.Foreground property.

The default appearance of text and text styles depends heavily on the active theme and other settings. The theme and various styles and behaviors that are using default system settings or user preferences are the source of the effective runtime appearance of RichTextBlock foreground color of text as well as other text characteristics. You can change these defaults by changing the property values, or by applying a different style to specific RichTextBlock instances. You can change the foreground value for all default text by overriding the resource named DefaultTextForegroundThemeBrush in App.xaml.

See Also

ForegroundProperty ForegroundProperty ForegroundProperty

Identifies the Foreground dependency property.

public static DependencyProperty ForegroundProperty { get; }public static DependencyProperty ForegroundProperty { get; }Public Static ReadOnly Property ForegroundProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the Foreground dependency property.

Attributes

HasOverflowContent HasOverflowContent HasOverflowContent

Gets a value that indicates whether the RichTextBlock has content that extends beyond its bounds, that can provide content to an OverflowContentTarget element.

public bool HasOverflowContent { get; }public bool HasOverflowContent { get; }Public ReadOnly Property HasOverflowContent As bool
Value
bool bool bool

True if the RichTextBlock has content that extends beyond its bounds; otherwise, false.

Attributes

Remarks

If HasOverflowContent is true and the OverflowContentTarget property is set, the extra content flows into the OverflowContentTarget element.

HasOverflowContentProperty HasOverflowContentProperty HasOverflowContentProperty

Identifies the HasOverflowContent dependency property.

public static DependencyProperty HasOverflowContentProperty { get; }public static DependencyProperty HasOverflowContentProperty { get; }Public Static ReadOnly Property HasOverflowContentProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the HasOverflowContent dependency property.

Attributes

IsColorFontEnabled IsColorFontEnabled IsColorFontEnabled

Gets or sets a value that determines whether font glyphs that contain color layers, such as Segoe UI Emoji, are rendered in color.

public bool IsColorFontEnabled { get; set; }public bool IsColorFontEnabled { get; set; }Public ReadWrite Property IsColorFontEnabled As bool
<RichEditBlock IsColorFontEnabled="bool" />
Value
bool bool bool

true if color glyphs show in color; otherwise, false. The default is true.

Attributes

Remarks

Windows 8.1 introduces the ability for fonts to include multiple colored layers for each glyph. For example, the Segoe UI Emoji font defines color versions of the Emoticon and other Emoji characters. By default, the IsColorFontEnabled property is true and fonts with these additional layers are rendered in color.

In Windows 8, Extensible Application Markup Language (XAML) text controls don't render multi-color fonts in color. When an app that was compiled for Windows 8 is recompiled for Windows 8.1, color rendering of multi-color fonts is enabled by default. Some glyphs in multi-color fonts have different layout metrics when rendered in color. This could cause different layout in apps when they are recompiled for Windows 8.1. To retain the Windows 8 behavior when your app is recompiled for Windows 8.1, set IsColorFontEnabled to false.

IsColorFontEnabledProperty IsColorFontEnabledProperty IsColorFontEnabledProperty

Identifies the IsColorFontEnabled dependency property.

public static DependencyProperty IsColorFontEnabledProperty { get; }public static DependencyProperty IsColorFontEnabledProperty { get; }Public Static ReadOnly Property IsColorFontEnabledProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the IsColorFontEnabled dependency property.

Attributes

IsTextScaleFactorEnabled IsTextScaleFactorEnabled IsTextScaleFactorEnabled

Gets or sets whether automatic text enlargement, to reflect the system text size setting, is enabled.

public bool IsTextScaleFactorEnabled { get; set; }public bool IsTextScaleFactorEnabled { get; set; }Public ReadWrite Property IsTextScaleFactorEnabled As bool
<RichTextBlock IsTextScaleFactorEnabled="bool"/>
Value
bool bool bool

true if automatic text enlargement is enabled; otherwise, false.

Attributes
See Also

IsTextScaleFactorEnabledProperty IsTextScaleFactorEnabledProperty IsTextScaleFactorEnabledProperty

Identifies the IsTextScaleFactorEnabled dependency property.

public static DependencyProperty IsTextScaleFactorEnabledProperty { get; }public static DependencyProperty IsTextScaleFactorEnabledProperty { get; }Public Static ReadOnly Property IsTextScaleFactorEnabledProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the IsTextScaleFactorEnabled dependency property.

Attributes

IsTextSelectionEnabled IsTextSelectionEnabled IsTextSelectionEnabled

Gets or sets a value that determines whether text content of the RichTextBlock can be selected for clipboard or drag purposes, or for UI styling changes that indicate selected text.

public bool IsTextSelectionEnabled { get; set; }public bool IsTextSelectionEnabled { get; set; }Public ReadWrite Property IsTextSelectionEnabled As bool
<RichTextBlock IsTextSelectionEnabled="bool" />
Value
bool bool bool

true if text content of the RichTextBlock can be selected for clipboard or drag purposes. false if text cannot be selected. The default is true.

Attributes

IsTextSelectionEnabledProperty IsTextSelectionEnabledProperty IsTextSelectionEnabledProperty

Identifies the IsTextSelectionEnabled dependency property.

public static DependencyProperty IsTextSelectionEnabledProperty { get; }public static DependencyProperty IsTextSelectionEnabledProperty { get; }Public Static ReadOnly Property IsTextSelectionEnabledProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the IsTextSelectionEnabled dependency property.

Attributes

LineHeight LineHeight LineHeight

Gets or sets the height of each line of content.

public double LineHeight { get; set; }public double LineHeight { get; set; }Public ReadWrite Property LineHeight As double
<RichTextBlock LineHeight="double"/>
Value
double double double

The height of each line in pixels. A value of 0 indicates that the line height is determined automatically from the current font characteristics. The default is 0.

Attributes

LineHeightProperty LineHeightProperty LineHeightProperty

Identifies the LineHeight dependency property.

public static DependencyProperty LineHeightProperty { get; }public static DependencyProperty LineHeightProperty { get; }Public Static ReadOnly Property LineHeightProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the LineHeight dependency property.

Attributes

LineStackingStrategy LineStackingStrategy LineStackingStrategy

Gets or sets a value that indicates how a line box is determined for each line of text in the RichTextBlock.

public LineStackingStrategy LineStackingStrategy { get; set; }public LineStackingStrategy LineStackingStrategy { get; set; }Public ReadWrite Property LineStackingStrategy As LineStackingStrategy
<RichTextBlock LineStackingStrategy="BlockLineHeight"/>
-or-
<RichTextBlock LineStackingStrategy="MaxHeight"/>
Value
LineStackingStrategy LineStackingStrategy LineStackingStrategy

A value that indicates how a line box is determined for each line of text in the RichTextBlock. The default is MaxHeight.

Attributes

LineStackingStrategyProperty LineStackingStrategyProperty LineStackingStrategyProperty

Identifies the LineStackingStrategy dependency property.

public static DependencyProperty LineStackingStrategyProperty { get; }public static DependencyProperty LineStackingStrategyProperty { get; }Public Static ReadOnly Property LineStackingStrategyProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the LineStackingStrategy dependency property.

Attributes

MaxLines MaxLines MaxLines

Gets or sets the maximum lines of text shown in the RichTextBlock.

public int MaxLines { get; set; }public int MaxLines { get; set; }Public ReadWrite Property MaxLines As int
<RichTextBlock MaxLines="int"/>
Value
int int int

The maximum lines of text shown in the RichTextBlock. The default is 0, which is a special value that represents "Auto" behavior. The value cannot be negative.

Attributes

Remarks

Use the MaxLines property to specify the maximum lines of text shown in a text block. The text control will adjust it’s height to show no more than the specified number of lines, regardless of the font size, font style, or text length.

Negative integer values are invalid, and will cause a run-time exception.

MaxLinesProperty MaxLinesProperty MaxLinesProperty

Identifies the MaxLines dependency property.

public static DependencyProperty MaxLinesProperty { get; }public static DependencyProperty MaxLinesProperty { get; }Public Static ReadOnly Property MaxLinesProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the MaxLines dependency property.

Attributes

OpticalMarginAlignment OpticalMarginAlignment OpticalMarginAlignment

Get or sets a value that indicates how the font is modified to align with fonts of different sizes.

public OpticalMarginAlignment OpticalMarginAlignment { get; set; }public OpticalMarginAlignment OpticalMarginAlignment { get; set; }Public ReadWrite Property OpticalMarginAlignment As OpticalMarginAlignment
<RichTextBlock OpticalMarginAlignment="None"/>
-or-
<RichTextBlock OpticalMarginAlignment="TrimSideBearings"/>
Value
OpticalMarginAlignment OpticalMarginAlignment OpticalMarginAlignment

A value of the enumeration that indicates how the font is modified to align at different sizes. The default is None.

Attributes

Remarks

When OpticalMarginAlignment is set to TrimSideBearings, the text is trimmed to the leftmost stroke of the first character and the rightmost stroke of the last character on a line. For example, an "L" has a small amount of space to the left of the vertical stroke, which scales with font size. When TrimSideBearings is set, the left of the vertical stroke is directly aligned without the spacing. This enables easier alignment to the Windows grid system as explained in Laying out an app page.

OpticalMarginAlignmentProperty OpticalMarginAlignmentProperty OpticalMarginAlignmentProperty

Identifies the OpticalMarginAlignment dependency property.

public static DependencyProperty OpticalMarginAlignmentProperty { get; }public static DependencyProperty OpticalMarginAlignmentProperty { get; }Public Static ReadOnly Property OpticalMarginAlignmentProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the OpticalMarginAlignment dependency property.

Attributes

OverflowContentTarget OverflowContentTarget OverflowContentTarget

Gets or sets a reference to a RichTextBlockOverflow that is the linked target for any text overflow from this RichTextBlock.

public RichTextBlockOverflow OverflowContentTarget { get; set; }public RichTextBlockOverflow OverflowContentTarget { get; set; }Public ReadWrite Property OverflowContentTarget As RichTextBlockOverflow
RichTextBlock OverflowContentTarget="{Binding ElementName=nameOfTarget}" />
Attributes

OverflowContentTargetProperty OverflowContentTargetProperty OverflowContentTargetProperty

Identifies the OverflowContentTarget dependency property.

public static DependencyProperty OverflowContentTargetProperty { get; }public static DependencyProperty OverflowContentTargetProperty { get; }Public Static ReadOnly Property OverflowContentTargetProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the OverflowContentTarget dependency property.

Attributes

Padding Padding Padding

Gets or sets a value that indicates the thickness of padding space between the boundaries of the content area and the content displayed by a RichTextBlock.

public Thickness Padding { get; set; }public Thickness Padding { get; set; }Public ReadWrite Property Padding As Thickness
<RichTextBlock Padding="uniform"/>
- or -
<RichTextBlock Padding="left&Right,top&Bottom"/>
- or -
<RichTextBlock Padding="left,top,right,bottom"/>
Value
Thickness Thickness Thickness

A Thickness structure that specifies the amount of padding to apply.

Attributes

Remarks

A related property is Margin (a property of FrameworkElement ). For more info about the relationship between margin and padding, see Alignment, margin, and padding or Define layouts with XAML.

See Also

PaddingProperty PaddingProperty PaddingProperty

Identifies the Padding dependency property.

public static DependencyProperty PaddingProperty { get; }public static DependencyProperty PaddingProperty { get; }Public Static ReadOnly Property PaddingProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the Padding dependency property.

Attributes

SelectedText SelectedText SelectedText

Gets a text range of selected text.

public string SelectedText { get; }public string SelectedText { get; }Public ReadOnly Property SelectedText As string
Value
string string string

A text range of the selected text.

Attributes

SelectedTextProperty SelectedTextProperty SelectedTextProperty

Identifies the SelectedText dependency property.

public static DependencyProperty SelectedTextProperty { get; }public static DependencyProperty SelectedTextProperty { get; }Public Static ReadOnly Property SelectedTextProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the SelectedText dependency property.

Attributes

SelectionEnd SelectionEnd SelectionEnd

Gets the end position of the text selected in the RichTextBlock.

public TextPointer SelectionEnd { get; }public TextPointer SelectionEnd { get; }Public ReadOnly Property SelectionEnd As TextPointer
Value
TextPointer TextPointer TextPointer

An object that represents the selection end, or null if no selection exists.

Attributes

Remarks

Use Select to set the selection start and end.

SelectionHighlightColor SelectionHighlightColor SelectionHighlightColor

Gets or sets the brush used to highlight the selected text.

public SolidColorBrush SelectionHighlightColor { get; set; }public SolidColorBrush SelectionHighlightColor { get; set; }Public ReadWrite Property SelectionHighlightColor As SolidColorBrush
<RichTextBlock SelectionHighlightColor="{StaticResource resourceName}"/>

Value
SolidColorBrush SolidColorBrush SolidColorBrush

The brush used to highlight the selected text. The default is a null brush from a pure code perspective, but the default text styles for RichTextBlock content apply a theme resource brush for this in a runtime instance of a RichTextBlock control.

Attributes

Remarks

A default text style sets the default selection highlight color to the system resource TextSelectionHighlightColorThemeBrush. To change the selection highlight color for all editable text controls in your app, you can override the TextSelectionHighlightColorThemeBrush system resource in App.xaml. This will affect PasswordBox, TextBox, and RichEditBox controls as well as RichTextBlock content. For more info, see XAML theme resources.

See Also

SelectionHighlightColorProperty SelectionHighlightColorProperty SelectionHighlightColorProperty

Identifies the SelectionHighlightColor dependency property.

public static DependencyProperty SelectionHighlightColorProperty { get; }public static DependencyProperty SelectionHighlightColorProperty { get; }Public Static ReadOnly Property SelectionHighlightColorProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the SelectionHighlightColor dependency property.

Attributes

SelectionStart SelectionStart SelectionStart

Gets the starting position of the text selected in the RichTextBlock.

public TextPointer SelectionStart { get; }public TextPointer SelectionStart { get; }Public ReadOnly Property SelectionStart As TextPointer
Value
TextPointer TextPointer TextPointer

An object that represents the selection start, or null if no selection exists.

Attributes

Remarks

Use Select to set the selection start and end.

TextAlignment TextAlignment TextAlignment

Gets or sets a value that indicates how the text is aligned in the RichTextBlock.

public TextAlignment TextAlignment { get; set; }public TextAlignment TextAlignment { get; set; }Public ReadWrite Property TextAlignment As TextAlignment
<RichTextBlock TextAlignment="textAlignmentValue"/>
Value
TextAlignment TextAlignment TextAlignment

One of the TextAlignment enumeration values that indicates how text is aligned. The default is Left.

Attributes

TextAlignmentProperty TextAlignmentProperty TextAlignmentProperty

Identifies the TextAlignment dependency property.

public static DependencyProperty TextAlignmentProperty { get; }public static DependencyProperty TextAlignmentProperty { get; }Public Static ReadOnly Property TextAlignmentProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

Identifier for the TextAlignment dependency property.

Attributes

TextDecorations TextDecorations TextDecorations

Gets or sets a value that indicates what decorations are applied to the text.

public TextDecorations TextDecorations { get; set; }public TextDecorations TextDecorations { get; set; }Public ReadWrite Property TextDecorations As TextDecorations
Value
TextDecorations TextDecorations TextDecorations

A value of the enumeration. The default is None.

Attributes

Remarks

This property is the preferred way to strikethrough or underline text.

TextDecorationsProperty TextDecorationsProperty TextDecorationsProperty

Identifies the TextDecorations dependency property.

public static DependencyProperty TextDecorationsProperty { get; }public static DependencyProperty TextDecorationsProperty { get; }Public Static ReadOnly Property TextDecorationsProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the TextDecorations dependency property.

Attributes

TextIndent TextIndent TextIndent

Gets or sets the indentation of the first line of text in each paragraph in the RichTextBlock.

public double TextIndent { get; set; }public double TextIndent { get; set; }Public ReadWrite Property TextIndent As double
<RichTextBlock TextIndent="double"/>
Value
double double double

The offset amount of the first line of text in a paragraph.

Attributes

Remarks

You can override this setting for specific paragraphs in a RichTextBlock by setting the Paragraph.TextIndent property to a different value.

TextIndentProperty TextIndentProperty TextIndentProperty

Identifies the TextIndent dependency property.

public static DependencyProperty TextIndentProperty { get; }public static DependencyProperty TextIndentProperty { get; }Public Static ReadOnly Property TextIndentProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier of the TextIndent dependency property.

Attributes

TextLineBounds TextLineBounds TextLineBounds

Gets or sets a value that indicates how the line box height is determined for each line of text in the RichTextBlock.

public TextLineBounds TextLineBounds { get; set; }public TextLineBounds TextLineBounds { get; set; }Public ReadWrite Property TextLineBounds As TextLineBounds
<RichTextBlock TextLineBounds="textLineBoundsValue"/>
Value
TextLineBounds TextLineBounds TextLineBounds

A value that indicates how the line box height is determined for each line of text in the RichTextBlock. The default is Full.

Attributes

Remarks

For illustrations of how the different values for TextLineBounds affect adjacent lines of text, see TextLineBounds.

TextLineBoundsProperty TextLineBoundsProperty TextLineBoundsProperty

Identifies the TextLineBounds dependency property.

public static DependencyProperty TextLineBoundsProperty { get; }public static DependencyProperty TextLineBoundsProperty { get; }Public Static ReadOnly Property TextLineBoundsProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the TextLineBounds dependency property.

Attributes

TextReadingOrder TextReadingOrder TextReadingOrder

Gets or sets a value that indicates how the reading order is determined for the RichTextBlock.

public TextReadingOrder TextReadingOrder { get; set; }public TextReadingOrder TextReadingOrder { get; set; }Public ReadWrite Property TextReadingOrder As TextReadingOrder
<RichTextBlock TextReadingOrder="textReadingOrderValue"/>
Value
TextReadingOrder TextReadingOrder TextReadingOrder

A value that indicates how the reading order is determined for the RichTextBlock. The default is DetectFromContent.

Attributes

Remarks

This property can be useful when the base direction of the text is unknown, and may not match the user's language or direction. For more info, see the Remarks section of the TextReadingOrder enumeration or How to support bidirectional UI.

Note

In Windows 8.1, the default value is 0, Default. Starting with Windows 10, the enumeration value 0 has the constant name UseFlowDirection, and is not the default value.

See Also

TextReadingOrderProperty TextReadingOrderProperty TextReadingOrderProperty

Identifies the TextReadingOrder dependency property.

public static DependencyProperty TextReadingOrderProperty { get; }public static DependencyProperty TextReadingOrderProperty { get; }Public Static ReadOnly Property TextReadingOrderProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the TextReadingOrder dependency property.

Attributes

TextTrimming TextTrimming TextTrimming

Gets or sets a value that indicates how text is trimmed when it overflows the content area.

public TextTrimming TextTrimming { get; set; }public TextTrimming TextTrimming { get; set; }Public ReadWrite Property TextTrimming As TextTrimming
<RichTextBlock TextTrimming="None"/>
-or-
<RichTextBlock TextTrimming="WordEllipsis"/>
Value
TextTrimming TextTrimming TextTrimming

One of the TextTrimming enumeration values that specifies the text trimming behavior to use. The default is None.

Attributes

TextTrimmingProperty TextTrimmingProperty TextTrimmingProperty

Identifies the TextTrimming dependency property.

public static DependencyProperty TextTrimmingProperty { get; }public static DependencyProperty TextTrimmingProperty { get; }Public Static ReadOnly Property TextTrimmingProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier of the TextTrimming dependency property.

Attributes

TextWrapping TextWrapping TextWrapping

Gets or sets a value that indicates whether text wrapping occurs if a line of text extends beyond the available width of the RichTextBlock.

public TextWrapping TextWrapping { get; set; }public TextWrapping TextWrapping { get; set; }Public ReadWrite Property TextWrapping As TextWrapping
<RichTextBlock TextWrapping="Wrap"/>
-or-
<RichTextBlock TextWrapping="NoWrap"/>
Value
TextWrapping TextWrapping TextWrapping

One of the TextWrapping enumeration values that specifies whether text is wrapped. The default is Wrap.

Attributes

TextWrappingProperty TextWrappingProperty TextWrappingProperty

Identifies the TextWrapping dependency property.

public static DependencyProperty TextWrappingProperty { get; }public static DependencyProperty TextWrappingProperty { get; }Public Static ReadOnly Property TextWrappingProperty As DependencyProperty
Value
DependencyProperty DependencyProperty DependencyProperty

The identifier for the TextWrapping dependency property.

Attributes

Methods

Focus(FocusState) Focus(FocusState) Focus(FocusState)

Focuses the RichTextBlock, as if it were a conventionally focusable control.

public bool Focus(FocusState value)public bool Focus(FocusState value)Public Function Focus(value As FocusState) As bool
Parameters
value
FocusState FocusState FocusState

Specifies the desired target for focus state, as a value of the enumeration.

Returns
bool bool bool

true if focus was set to the RichTextBlock, or focus was already there. false if the RichTextBlock is not focusable.

Attributes

Remarks

GetPositionFromPoint(Point) GetPositionFromPoint(Point) GetPositionFromPoint(Point)

Returns a TextPointer text reference from a RichTextBlock by hit-testing a specific Point within the text display area.

public TextPointer GetPositionFromPoint(Point point)public TextPointer GetPositionFromPoint(Point point)Public Function GetPositionFromPoint(point As Point) As TextPointer
Parameters
point
Point Point Point

The point to test.

Returns

The determined text reference.

Attributes

Select(TextPointer, TextPointer) Select(TextPointer, TextPointer) Select(TextPointer, TextPointer)

Selects a range of text in the RichTextBlock.

public void Select(TextPointer start, TextPointer end)public void Select(TextPointer start, TextPointer end)Public Function Select(start As TextPointer, end As TextPointer) As void
Parameters
start
TextPointer TextPointer TextPointer

An object that represents the start of the range to select.

end
TextPointer TextPointer TextPointer

An object that represents the end of the range to select.

Attributes

Remarks

In Windows Presentation Foundation (WPF) and Microsoft Silverlight the equivalent API uses integer for start and end positions. This implementation uses TextPointer objects to specify the selection.

SelectAll() SelectAll() SelectAll()

Selects the entire contents in the RichTextBlock.

public void SelectAll()public void SelectAll()Public Function SelectAll() As void
Attributes

Events

ContextMenuOpening ContextMenuOpening ContextMenuOpening

Occurs when the system processes an interaction that displays a context menu.

public event ContextMenuOpeningEventHandler ContextMenuOpeningpublic event ContextMenuOpeningEventHandler ContextMenuOpeningPublic Event ContextMenuOpening
<RichTextBlock ContextMenuOpening="eventhandler" />
Attributes

SelectionChanged SelectionChanged SelectionChanged

Occurs when the text selection has changed.

public event RoutedEventHandler SelectionChangedpublic event RoutedEventHandler SelectionChangedPublic Event SelectionChanged
<RichTextBlock SelectionChanged="eventhandler"/>
Attributes

See Also