RichTextBlock RichTextBlock RichTextBlock Class

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

Syntax

Declaration

public sealed class RichTextBlockpublic sealed class RichTextBlockPublic NotInheritable Class RichTextBlock
<RichTextBlock .../>
-or-
<RichTextBlock ...>
  blocksContent
</RichTextBlock>

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 Inlines collection. Then, add each Paragraph to the 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 Inlines collection. Then, add each Paragraph to the 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 Inlines collection. Then, add each Paragraph to the 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 summary

Initializes a new instance of the RichTextBlock class.

Properties summary

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.

Gets the contents of the RichTextBlock.

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

Identifies the CharacterSpacing dependency property.

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

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

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

Identifies the FontFamily dependency property.

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

Identifies the FontSize dependency property.

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

Identifies the FontStretch dependency property.

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

Identifies the FontStyle dependency property.

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

Identifies the FontWeight dependency property.

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

Identifies the Foreground dependency property.

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

Identifies the HasOverflowContent dependency property.

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

Identifies the IsColorFontEnabled dependency property.

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

Identifies the IsTextScaleFactorEnabled dependency property.

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.

Identifies the IsTextSelectionEnabled dependency property.

Gets or sets the height of each line of content.

Identifies the LineHeight dependency property.

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

Identifies the LineStackingStrategy dependency property.

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

Identifies the MaxLines dependency property.

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

Identifies the OpticalMarginAlignment dependency property.

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

Identifies the OverflowContentTarget dependency property.

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.

Identifies the Padding dependency property.

Gets a text range of selected text.

Identifies the SelectedText dependency property.

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

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

Identifies the SelectionHighlightColor dependency property.

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

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

Identifies the TextAlignment dependency property.

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

Prerelease. Identifies the TextDecorations dependency property.

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

Identifies the TextIndent dependency property.

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

Identifies the TextLineBounds dependency property.

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

Identifies the TextReadingOrder dependency property.

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

Identifies the TextTrimming dependency property.

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

Identifies the TextWrapping dependency property.

Methods summary

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

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

Selects a range of text in the RichTextBlock.

Selects the entire contents in the RichTextBlock.

Events summary

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

Occurs when the text selection has changed.

Constructors

  • RichTextBlock()
    RichTextBlock()
    RichTextBlock()
    RichTextBlock()

    Initializes a new instance of the RichTextBlock class.

    public RichTextBlock()public RichTextBlock()Public Function RichTextBlock() As

Properties

  • BaselineOffset
    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

    Property Value

    • double
      double
      double

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

  • Blocks
    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>
    

    Property Value

  • CharacterSpacing
    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"/>
    

    Property 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.

    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.

  • CharacterSpacingProperty
    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

    Property Value

  • ContentEnd
    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

    Property Value

  • ContentStart
    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

    Property Value

  • FontFamily
    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" />
    

    Property Value

    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 FontFamily property.

  • FontFamilyProperty
    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

    Property Value

  • FontSize
    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" .../>
    

    Property Value

    • double
      double
      double

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

    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 FontSize property.

  • FontSizeProperty
    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

    Property Value

  • FontStretch
    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"/>
    

    Property Value

    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 FontStretch property.

  • FontStretchProperty
    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

    Property Value

  • FontStyle
    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"/>
    

    Property Value

    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 FontStyle property.

  • FontStyleProperty
    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

    Property Value

  • FontWeight
    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"/>
    

    Property Value

    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 FontWeight property.

  • FontWeightProperty
    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

    Property Value

  • Foreground
    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}"/>
    
    

    Property Value

    • 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.

    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 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.

  • ForegroundProperty
    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

    Property Value

  • HasOverflowContent
    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

    Property Value

    • bool
      bool
      bool

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

    Remarks

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

  • HasOverflowContentProperty
    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

    Property Value

  • IsColorFontEnabled
    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" />
    

    Property Value

    • bool
      bool
      bool

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

    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
    IsColorFontEnabledProperty

    Identifies the IsColorFontEnabled dependency property.

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

    Property Value

  • IsTextScaleFactorEnabled
    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"/>
    

    Property Value

    • bool
      bool
      bool

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

  • IsTextScaleFactorEnabledProperty
    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

    Property Value

  • IsTextSelectionEnabled
    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" />
    

    Property 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.

  • IsTextSelectionEnabledProperty
    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

    Property Value

  • LineHeight
    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"/>
    

    Property 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.

  • LineHeightProperty
    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

    Property Value

  • LineStackingStrategy
    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"/>
    

    Property Value

  • LineStackingStrategyProperty
    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

    Property Value

  • MaxLines
    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"/>
    

    Property 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.

    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
    MaxLinesProperty

    Identifies the MaxLines dependency property.

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

    Property Value

  • OpticalMarginAlignment
    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"/>
    

    Property Value

    Remarks

    When OpticalMarginAlignment is set to OpticalMarginAlignment, 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 OpticalMarginAlignment 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
    OpticalMarginAlignmentProperty

    Identifies the OpticalMarginAlignment dependency property.

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

    Property Value

  • OverflowContentTarget
    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}" />
    

    Property Value

  • OverflowContentTargetProperty
    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

    Property Value

  • Padding
    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"/>
    

    Property Value

    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.

  • PaddingProperty
    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

    Property Value

  • SelectedText
    SelectedText
    SelectedText
    SelectedText

    Gets a text range of selected text.

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

    Property Value

    • string
      string
      string

      A text range of the selected text.

  • SelectedTextProperty
    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

    Property Value

  • SelectionEnd
    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

    Property Value

    Remarks

    Use Select(Windows.UI.Xaml.Documents.TextPointer,Windows.UI.Xaml.Documents.TextPointer) to set the selection start and end.

  • SelectionHighlightColor
    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}"/>
    
    

    Property Value

    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.

  • SelectionHighlightColorProperty
    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

    Property Value

  • SelectionStart
    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

    Property Value

    Remarks

    Use Select(Windows.UI.Xaml.Documents.TextPointer,Windows.UI.Xaml.Documents.TextPointer) to set the selection start and end.

  • TextAlignment
    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"/>
    

    Property Value

  • TextAlignmentProperty
    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

    Property Value

  • TextDecorations
    TextDecorations
    TextDecorations
    TextDecorations

    Prerelease. 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

    Property Value

    Remarks

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

  • TextDecorationsProperty
    TextDecorationsProperty
    TextDecorationsProperty
    TextDecorationsProperty

    Prerelease. Identifies the TextDecorations dependency property.

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

    Property Value

  • TextIndent
    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"/>
    

    Property Value

    • double
      double
      double

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

    Remarks

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

  • TextIndentProperty
    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

    Property Value

  • TextLineBounds
    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"/>
    

    Property Value

    Remarks

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

  • TextLineBoundsProperty
    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

    Property Value

  • TextReadingOrder
    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"/>
    

    Property Value

    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.

  • TextReadingOrderProperty
    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

    Property Value

  • TextTrimming
    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"/>
    

    Property Value

  • TextTrimmingProperty
    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

    Property Value

  • TextWrapping
    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"/>
    

    Property Value

  • TextWrappingProperty
    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

    Property Value

Methods

  • Focus(Windows.UI.Xaml.FocusState)
    Focus(Windows.UI.Xaml.FocusState)
    Focus(Windows.UI.Xaml.FocusState)
    Focus(Windows.UI.Xaml.FocusState)

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

    public bool Focus(Windows.UI.Xaml.FocusState value)public bool Focus(Windows.UI.Xaml.FocusState value)Public Function Focus(value As Windows.UI.Xaml.FocusState) As bool

    Parameters

    Returns

    • bool
      bool
      bool

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

    Remarks

  • GetPositionFromPoint(Windows.Foundation.Point)
    GetPositionFromPoint(Windows.Foundation.Point)
    GetPositionFromPoint(Windows.Foundation.Point)
    GetPositionFromPoint(Windows.Foundation.Point)

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

    public TextPointer GetPositionFromPoint(Windows.Foundation.Point point)public TextPointer GetPositionFromPoint(Windows.Foundation.Point point)Public Function GetPositionFromPoint(point As Windows.Foundation.Point) As TextPointer

    Parameters

    Returns

  • Select(Windows.UI.Xaml.Documents.TextPointer,Windows.UI.Xaml.Documents.TextPointer)
    Select(Windows.UI.Xaml.Documents.TextPointer,Windows.UI.Xaml.Documents.TextPointer)
    Select(Windows.UI.Xaml.Documents.TextPointer,Windows.UI.Xaml.Documents.TextPointer)
    Select(Windows.UI.Xaml.Documents.TextPointer,Windows.UI.Xaml.Documents.TextPointer)

    Selects a range of text in the RichTextBlock.

    public void Select(Windows.UI.Xaml.Documents.TextPointer start,Windows.UI.Xaml.Documents.TextPointer end)public void Select(Windows.UI.Xaml.Documents.TextPointer start,Windows.UI.Xaml.Documents.TextPointer end)Public Function Select(start As Windows.UI.Xaml.Documents.TextPointer,end As Windows.UI.Xaml.Documents.TextPointer) As void

    Parameters

    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()
    SelectAll()

    Selects the entire contents in the RichTextBlock.

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

Events

  • ContextMenuOpening
    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" />
    
  • SelectionChanged
    SelectionChanged
    SelectionChanged
    SelectionChanged

    Occurs when the text selection has changed.

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

Attributes

Windows.Foundation.Metadata.StaticAttribute
Windows.Foundation.Metadata.StaticAttribute
Windows.UI.Xaml.Markup.ContentPropertyAttribute
Windows.Foundation.Metadata.ThreadingAttribute
Windows.Foundation.Metadata.StaticAttribute
Windows.Foundation.Metadata.StaticAttribute
Windows.Foundation.Metadata.ActivatableAttribute
Windows.Foundation.Metadata.MarshalingBehaviorAttribute
Windows.Foundation.Metadata.WebHostHiddenAttribute
Windows.Foundation.Metadata.ContractVersionAttribute

Details

Assembly

Windows.UI.Xaml.Controls.dll