RichTextBlock class
TOC
Collapse the table of content
Expand the table of content

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.

Inheritance

Object
  DependencyObject
    UIElement
      FrameworkElement
        RichTextBlock

Syntax


public sealed class RichTextBlock : FrameworkElement


<RichTextBlock .../>
-or-
<RichTextBlock ...>
  blocksContent
</RichTextBlock>

XAML Values

blocksContent

One or more object elements for types that derive from Block. Typically, these are Paragraph elements.

Members

The RichTextBlock class has these types of members:

Constructors

The RichTextBlock class has these constructors.

ConstructorDescription
RichTextBlock Initializes a new instance of the RichTextBlock class.

 

Events

The RichTextBlock class has these events.

EventDescription
AccessKeyDisplayDismissed Occurs when the access key sequence is complete to notify controls that they should hide access key visuals. (Inherited from UIElement)
AccessKeyDisplayRequested Occurs when the access key sequence is started to notify controls that they should show access key visuals. (Inherited from UIElement)
AccessKeyInvoked Occurs when a user completes an access key sequence to notify the element that the access key action should be invoked. (Inherited from UIElement)
ContextCanceled Occurs when a context input gesture continues into a manipulation gesture, to notify the element that the context flyout should not be opened. (Inherited from UIElement)
ContextMenuOpening Occurs when the system processes an interaction that displays a context menu.
ContextRequested Occurs when the user has completed a context input gesture, such as a right-click. (Inherited from UIElement)
DataContextChanged Occurs when the value of the FrameworkElement.DataContext property changes. (Inherited from FrameworkElement)
DoubleTapped Occurs when an otherwise unhandled DoubleTap interaction occurs over the hit test area of this element. (Inherited from UIElement)
DragEnter Occurs when the input system reports an underlying drag event with this element as the target. (Inherited from UIElement)
DragLeave Occurs when the input system reports an underlying drag event with this element as the origin. (Inherited from UIElement)
DragOver Occurs when the input system reports an underlying drag event with this element as the potential drop target. (Inherited from UIElement)
DragStarting Occurs when a drag operation is initiated. (Inherited from UIElement)
Drop Occurs when the input system reports an underlying drop event with this element as the drop target. (Inherited from UIElement)
DropCompleted Occurs when a drag-and-drop operation is ended. (Inherited from UIElement)
GotFocus Occurs when a UIElement receives focus. (Inherited from UIElement)
Holding Occurs when an otherwise unhandled Hold interaction occurs over the hit test area of this element. (Inherited from UIElement)
KeyDown Occurs when a keyboard key is pressed while the UIElement has focus. (Inherited from UIElement)
KeyUp Occurs when a keyboard key is released while the UIElement has focus. (Inherited from UIElement)
LayoutUpdated Occurs when the layout of the visual tree changes, due to layout-relevant properties changing value or some other action that refreshes the layout. (Inherited from FrameworkElement)
Loaded Occurs when a FrameworkElement has been constructed and added to the object tree, and is ready for interaction. (Inherited from FrameworkElement)
Loading Occurs when a FrameworkElement begins to load. (Inherited from FrameworkElement)
LostFocus Occurs when a UIElement loses focus. (Inherited from UIElement)
ManipulationCompleted Occurs when a manipulation on the UIElement is complete. (Inherited from UIElement)
ManipulationDelta Occurs when the input device changes position during a manipulation. (Inherited from UIElement)
ManipulationInertiaStarting Occurs when the input device loses contact with the UIElement object during a manipulation and inertia begins. (Inherited from UIElement)
ManipulationStarted Occurs when an input device begins a manipulation on the UIElement. (Inherited from UIElement)
ManipulationStarting Occurs when the manipulation processor is first created. (Inherited from UIElement)
PointerCanceled Occurs when a pointer that made contact abnormally loses contact. (Inherited from UIElement)
PointerCaptureLost Occurs when pointer capture previously held by this element moves to another element or elsewhere. (Inherited from UIElement)
PointerEntered Occurs when a pointer enters the hit test area of this element. (Inherited from UIElement)
PointerExited Occurs when a pointer leaves the hit test area of this element. (Inherited from UIElement)
PointerMoved Occurs when a pointer moves while the pointer remains within the hit test area of this element. (Inherited from UIElement)
PointerPressed Occurs when the pointer device initiates a Press action within this element. (Inherited from UIElement)
PointerReleased Occurs when the pointer device that previously initiated a Press action is released, while within this element. (Inherited from UIElement)
PointerWheelChanged Occurs when the delta value of a pointer wheel changes. (Inherited from UIElement)
RightTapped Occurs when a right-tap input stimulus happens while the pointer is over the element. (Inherited from UIElement)
SelectionChanged Occurs when the text selection has changed.
SizeChanged Occurs when either the ActualHeight or the ActualWidth property changes value on a FrameworkElement. (Inherited from FrameworkElement)
Tapped Occurs when an otherwise unhandled Tap interaction occurs over the hit test area of this element. (Inherited from UIElement)
Unloaded Occurs when this object is no longer connected to the main object tree. (Inherited from FrameworkElement)

 

Methods

The RichTextBlock class has these methods. It also inherits methods from the Object class.

MethodDescription
AddHandler Adds a routed event handler for a specified routed event, adding the handler to the handler collection on the current element. Specify handledEventsToo as true to have the provided handler be invoked even if the event is handled elsewhere. (Inherited from UIElement)
Arrange Positions child objects and determines a size for a UIElement. Parent objects that implement custom layout for their child elements should call this method from their layout override implementations to form a recursive layout update. (Inherited from UIElement)
ArrangeOverride Provides the behavior for the Arrange pass of layout. Classes can override this method to define their own Arrange pass behavior. (Inherited from FrameworkElement)
CancelDirectManipulations Cancels ongoing direct manipulation processing (system-defined panning/zooming) on any ScrollViewer parent that contains the current UIElement. (Inherited from UIElement)
CapturePointer Sets pointer capture to a UIElement. Once captured, only the element that has capture will fire pointer-related events. (Inherited from UIElement)
ClearValue Clears the local value of a dependency property. (Inherited from DependencyObject)
FindName Retrieves an object that has the specified identifier name. (Inherited from FrameworkElement)
FindSubElementsForTouchTargeting Enables a UIElement subclass to expose child elements that assist with resolving touch targeting. (Inherited from UIElement)
Focus Focuses the RichTextBlock, as if it were a conventionally focusable control.
GetAnimationBaseValue Returns any base value established for a dependency property, which would apply in cases where an animation is not active. (Inherited from DependencyObject)
GetBindingExpression Returns the BindingExpression that represents the binding on the specified property. (Inherited from FrameworkElement)
GetPositionFromPoint Returns a TextPointer text reference from a RichTextBlock by hit-testing a specific Point within the text display area.
GetValue Returns the current effective value of a dependency property from a DependencyObject. (Inherited from DependencyObject)
GoToElementStateCore When implemented in a derived class, enables per-state construction of a visual tree for a control template in code, rather than by loading XAML for all states at control startup. (Inherited from FrameworkElement)
InvalidateArrange Invalidates the arrange state (layout) for a UIElement. After the invalidation, the UIElement will have its layout updated, which will occur asynchronously. (Inherited from UIElement)
InvalidateMeasure Invalidates the measurement state (layout) for a UIElement. (Inherited from UIElement)
Measure Updates the DesiredSize of a UIElement. Typically, objects that implement custom layout for their layout children call this method from their own MeasureOverride implementations to form a recursive layout update. (Inherited from UIElement)
MeasureOverride Provides the behavior for the Measure pass of the layout cycle. Classes can override this method to define their own Measure pass behavior. (Inherited from FrameworkElement)
OnApplyTemplate Invoked whenever application code or internal processes (such as a rebuilding layout pass) call ApplyTemplate. In simplest terms, this means the method is called just before a UI element displays in your app. Override this method to influence the default post-template logic of a class. (Inherited from FrameworkElement)
OnCreateAutomationPeer When implemented in a derived class, returns class-specific AutomationPeer implementations for the Microsoft UI Automation infrastructure. (Inherited from UIElement)
OnDisconnectVisualChildren Override this method to implement how layout and logic should behave when items are removed from a class-specific content or children property. (Inherited from UIElement)
ReadLocalValue Returns the local value of a dependency property, if a local value is set. (Inherited from DependencyObject)
RegisterPropertyChangedCallback Registers a notification function for listening to changes to a specific DependencyProperty on this DependencyObject instance. (Inherited from DependencyObject)
ReleasePointerCapture Releases pointer captures for capture of one specific pointer by this UIElement. (Inherited from UIElement)
ReleasePointerCaptures Releases all pointer captures held by this element. (Inherited from UIElement)
RemoveHandler Removes the specified routed event handler from this UIElement. Typically the handler in question was added by AddHandler. (Inherited from UIElement)
Select Selects a range of text in the RichTextBlock.
SelectAll Selects the entire contents in the RichTextBlock.
SetBinding Attaches a binding to a FrameworkElement, using the provided binding object. (Inherited from FrameworkElement)
SetValue Sets the local value of a dependency property on a DependencyObject. (Inherited from DependencyObject)
StartDragAsync Initiates a drag-and-drop operation. (Inherited from UIElement)
TransformToVisual Returns a transform object that can be used to transform coordinates from the UIElement to the specified object. (Inherited from UIElement)
UnregisterPropertyChangedCallback Cancels a change notification that was previously registered by calling RegisterPropertyChangedCallback. (Inherited from DependencyObject)
UpdateLayout Ensures that all positions of child objects of a UIElement are properly updated for layout. (Inherited from UIElement)

 

Properties

The RichTextBlock class has these properties.

PropertyAccess typeDescription

AccessKey

Read/write

Gets or sets the access key (mnemonic) for this element. (Inherited from UIElement)

AccessKeyScopeOwner

Read/write

Gets or sets a source element that provides the access key scope for this element, even if it's not in the visual tree of the source element. (Inherited from UIElement)

ActualHeight

Read-only

Gets the rendered height of a FrameworkElement. See Remarks. (Inherited from FrameworkElement)

ActualWidth

Read-only

Gets the rendered width of a FrameworkElement. See Remarks. (Inherited from FrameworkElement)

AllowDrop

Read/write

Gets or sets a value that determines whether this UIElement can be a drop target for purposes of drag-and-drop operations. (Inherited from UIElement)

AllowFocusOnInteraction

Read/write

Gets or sets a value that indicates whether the element automatically gets focus when the user interacts with it. (Inherited from FrameworkElement)

AllowFocusWhenDisabled

Read/write

Gets or sets whether a disabled control can receive focus. (Inherited from FrameworkElement)

BaselineOffset

Read-only

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.

BaseUri

Read-only

Gets a Uniform Resource Identifier (URI) that represents the base Uniform Resource Identifier (URI) for an XAML-constructed object at XAML load time. This property is useful for Uniform Resource Identifier (URI) resolution at run time. (Inherited from FrameworkElement)

Blocks

Read-only

Gets the contents of the RichTextBlock.

CacheMode

Read/write

Gets or sets a value that indicates that rendered content should be cached as a composited bitmap when possible. (Inherited from UIElement)

CanDrag

Read-only

Gets or sets a value that indicates whether the element can be dragged as data in a drag-and-drop operation. (Inherited from UIElement)

CharacterSpacing

Read/write

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

CharacterSpacingProperty

Read-only

Identifies the CharacterSpacing dependency property.

Clip

Read/write

Gets or sets the RectangleGeometry used to define the outline of the contents of a UIElement. (Inherited from UIElement)

CompositeMode

Read/write

Gets or sets a property that declares alternate composition and blending modes for the element in its parent layout and window. This is relevant for elements that are involved in a mixed XAML / Microsoft DirectX UI. (Inherited from UIElement)

ContentEnd

Read-only

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

ContentStart

Read-only

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

ContextFlyout

Read/write

Gets or sets the flyout associated with this element. (Inherited from UIElement)

DataContext

Read/write

Gets or sets the data context for a FrameworkElement when it participates in data binding. (Inherited from FrameworkElement)

DesiredSize

Read-only

Gets the size that this UIElement computed during the measure pass of the layout process. (Inherited from UIElement)

Dispatcher

Read-only

Gets the CoreDispatcher that this object is associated with. The CoreDispatcher represents a facility that can access the DependencyObject on the UI thread even if the code is initiated by a non-UI thread. (Inherited from DependencyObject)

ExitDisplayModeOnAccessKeyInvoked

Read/write

Gets or sets a value that specifies whether the access key display is dismissed when an access key is invoked. (Inherited from UIElement)

FlowDirection

Read/write

Gets or sets the direction in which text and other UI elements flow within any parent element that controls their layout. This property can be set to either LeftToRight or RightToLeft. Setting FlowDirection to RightToLeft on any element sets the alignment to the right, the reading order to right-to-left and the layout of the control to flow from right to left. (Inherited from FrameworkElement)

FocusVisualMargin

Read/write

Gets or sets the outer margin of the focus visual for a FrameworkElement. (Inherited from FrameworkElement)

FocusVisualPrimaryBrush

Read/write

Gets or sets the brush used to draw the outer border of a HighVisibility focus visual for a FrameworkElement. (Inherited from FrameworkElement)

FocusVisualPrimaryThickness

Read/write

Gets or sets the thickness of the outer border of a HighVisibility focus visual for a FrameworkElement. (Inherited from FrameworkElement)

FocusVisualSecondaryBrush

Read/write

Gets or sets the brush used to draw the inner border of a HighVisibility focus visual for a FrameworkElement. (Inherited from FrameworkElement)

FocusVisualSecondaryThickness

Read/write

Gets or sets the thickness of the inner border of a HighVisibility focus visual for a FrameworkElement. (Inherited from FrameworkElement)

FontFamily

Read/write

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

FontFamilyProperty

Read-only

Identifies the FontFamily dependency property.

FontSize

Read/write

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

FontSizeProperty

Read-only

Identifies the FontSize dependency property.

FontStretch

Read/write

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

FontStretchProperty

Read-only

Identifies the FontStretch dependency property.

FontStyle

Read/write

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

FontStyleProperty

Read-only

Identifies the FontStyle dependency property.

FontWeight

Read/write

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

FontWeightProperty

Read-only

Identifies the FontWeight dependency property.

Foreground

Read/write

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

ForegroundProperty

Read-only

Identifies the Foreground dependency property.

HasOverflowContent

Read-only

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

HasOverflowContentProperty

Read-only

Identifies the HasOverflowContent dependency property.

Height

Read/write

Gets or sets the suggested height of a FrameworkElement. (Inherited from FrameworkElement)

HorizontalAlignment

Read/write

Gets or sets the horizontal alignment characteristics that are applied to a FrameworkElement when it is composed in a layout parent, such as a panel or items control. (Inherited from FrameworkElement)

IsAccessKeyScope

Read/write

Gets or sets a value that indicates whether an element defines its own access key scope. (Inherited from UIElement)

IsColorFontEnabled

Read/write

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

IsColorFontEnabledProperty

Read-only

Identifies the IsColorFontEnabled dependency property.

IsDoubleTapEnabled

Read/write

Gets or sets a value that determines whether the DoubleTapped event can originate from that element. (Inherited from UIElement)

IsHitTestVisible

Read/write

Gets or sets whether the contained area of this UIElement can return true values for hit testing. (Inherited from UIElement)

IsHoldingEnabled

Read/write

Gets or sets a value that determines whether the Holding event can originate from that element. (Inherited from UIElement)

IsRightTapEnabled

Read/write

Gets or sets a value that determines whether the RightTapped event can originate from that element. (Inherited from UIElement)

IsTapEnabled

Read/write

Gets or sets a value that determines whether the Tapped event can originate from that element. (Inherited from UIElement)

IsTextScaleFactorEnabled

Read/write

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

IsTextScaleFactorEnabledProperty

Read-only

Identifies the IsTextScaleFactorEnabled dependency property.

IsTextSelectionEnabled

Read/write

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.

IsTextSelectionEnabledProperty

Read-only

Identifies the IsTextSelectionEnabled dependency property.

Language

Read/write

Gets or sets localization/globalization language information that applies to a FrameworkElement, and also to all child elements of the current FrameworkElement in the object representation and in UI. (Inherited from FrameworkElement)

LineHeight

Read/write

Gets or sets the height of each line of content.

LineHeightProperty

Read-only

Identifies the LineHeight dependency property.

LineStackingStrategy

Read/write

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

LineStackingStrategyProperty

Read-only

Identifies the LineStackingStrategy dependency property.

ManipulationMode

Read/write

Gets or sets the ManipulationModes value used for UIElement behavior and interaction with gestures. Setting this value enables handling the manipulation events from this element in app code. (Inherited from UIElement)

Margin

Read/write

Gets or sets the outer margin of a FrameworkElement. (Inherited from FrameworkElement)

MaxHeight

Read/write

Gets or sets the maximum height constraint of a FrameworkElement. (Inherited from FrameworkElement)

MaxLines

Read/write

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

MaxLinesProperty

Read-only

Identifies the MaxLines dependency property.

MaxWidth

Read/write

Gets or sets the maximum width constraint of a FrameworkElement. (Inherited from FrameworkElement)

MinHeight

Read/write

Gets or sets the minimum height constraint of a FrameworkElement. (Inherited from FrameworkElement)

MinWidth

Read/write

Gets or sets the minimum width constraint of a FrameworkElement. (Inherited from FrameworkElement)

Name

Read/write

Gets or sets the identifying name of the object. When a XAML processor creates the object tree from XAML markup, run-time code can refer to the XAML-declared object by this name. (Inherited from FrameworkElement)

Opacity

Read/write

Gets or sets the degree of the object's opacity. (Inherited from UIElement)

OpticalMarginAlignment

Read/write

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

OpticalMarginAlignmentProperty

Read-only

Identifies the OpticalMarginAlignment dependency property.

OverflowContentTarget

Read/write

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

OverflowContentTargetProperty

Read-only

Identifies the OverflowContentTarget dependency property.

Padding

Read/write

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.

PaddingProperty

Read-only

Identifies the Padding dependency property.

Parent

Read-only

Gets the parent object of this FrameworkElement in the object tree. (Inherited from FrameworkElement)

PointerCaptures

Read-only

Gets the set of all captured pointers, represented as Pointer values. (Inherited from UIElement)

Projection

Read/write

Gets or sets the perspective projection (3-D effect) to apply when rendering this element. (Inherited from UIElement)

RenderSize

Read-only

Gets the final render size of a UIElement. (Inherited from UIElement)

RenderTransform

Read/write

Gets or sets transform information that affects the rendering position of a UIElement. (Inherited from UIElement)

RenderTransformOrigin

Read/write

Gets or sets the origin point of any possible render transform declared by RenderTransform, relative to the bounds of the UIElement. (Inherited from UIElement)

RequestedTheme

Read/write

Gets or sets the UI theme that is used by the UIElement (and its child elements) for resource determination. The UI theme you specify with RequestedTheme can override the app-level RequestedTheme. (Inherited from FrameworkElement)

Resources

Read/write

Gets the locally defined resource dictionary. In XAML, you can establish resource items as child object elements of a frameworkElement.Resources property element, through XAML implicit collection syntax. (Inherited from FrameworkElement)

SelectedText

Read-only

Gets a text range of selected text.

SelectedTextProperty

Read-only

Identifies the SelectedText dependency property.

SelectionEnd

Read-only

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

SelectionHighlightColor

Read/write

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

SelectionHighlightColorProperty

Read-only

Identifies the SelectionHighlightColor dependency property.

SelectionStart

Read-only

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

Style

Read/write

Gets or sets an instance Style that is applied for this object during layout and rendering. (Inherited from FrameworkElement)

Tag

Read/write

Gets or sets an arbitrary object value that can be used to store custom information about this object. (Inherited from FrameworkElement)

TextAlignment

Read/write

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

TextAlignmentProperty

Read-only

Identifies the TextAlignment dependency property.

TextIndent

Read/write

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

TextIndentProperty

Read-only

Identifies the TextIndent dependency property.

TextLineBounds

Read/write

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

TextLineBoundsProperty

Read-only

Identifies the TextLineBounds dependency property.

TextReadingOrder

Read/write

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

TextReadingOrderProperty

Read-only

Identifies the TextReadingOrder dependency property.

TextTrimming

Read/write

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

TextTrimmingProperty

Read-only

Identifies the TextTrimming dependency property.

TextWrapping

Read/write

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

TextWrappingProperty

Read-only

Identifies the TextWrapping dependency property.

Transform3D

Read-only

Gets or sets the 3-D transform effect to apply when rendering this element. (Inherited from UIElement)

Transitions

Read/write

Gets or sets the collection of Transition style elements that apply to a UIElement. (Inherited from UIElement)

Triggers

Read-only

Gets the collection of triggers for animations that are defined for a FrameworkElement. Not commonly used. (Inherited from FrameworkElement)

UseLayoutRounding

Read/write

Gets or sets a value that determines whether rendering for the object and its visual subtree should use rounding behavior that aligns rendering to whole pixels. (Inherited from UIElement)

VerticalAlignment

Read/write

Gets or sets the vertical alignment characteristics that are applied to a FrameworkElement when it is composed in a parent object such as a panel or items control. (Inherited from FrameworkElement)

Visibility

Read/write

Gets or sets the visibility of a UIElement. A UIElement that is not visible is not rendered and does not communicate its desired size to layout. (Inherited from UIElement)

Width

Read/write

Gets or sets the width of a FrameworkElement. (Inherited from FrameworkElement)

 

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 pixels (DIPs). 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>


For more examples, see scenario 4, "Linked text containers", of the XAML text display sample.

Requirements (Windows 10 device family)

Device family

Universal, introduced version 10.0.10240.0

API contract

Windows.Foundation.UniversalApiContract, introduced version 1.0

Namespace

Windows.UI.Xaml.Controls
Windows::UI::Xaml::Controls [C++]

Metadata

Windows.Foundation.UniversalApiContract.winmd

Requirements (Windows 8.x and Windows Phone 8.x)

Minimum supported client

Windows 8 [Windows Store apps only]

Minimum supported server

Windows Server 2012 [Windows Store apps only]

Minimum supported phone

Windows Phone 8.1 [Windows Runtime apps only]

Namespace

Windows.UI.Xaml.Controls
Windows::UI::Xaml::Controls [C++]

Metadata

Windows.winmd

Attributes

[ContentProperty("")]
[MarshalingBehavior(Agile)]
[Threading(Both)]
[Version(0x06020000)]
[WebHostHidden()]

See also

Object
FrameworkElement
RichTextBlock control guide
Paragraph
OverflowContentTarget
RichTextBlockOverflow
RichTextBlockOverflow.OverflowContentTarget
XAML text display sample

 

 

Show:
© 2016 Microsoft