Text​Block Text​Block Text​Block Class

Definition

Provides a lightweight control for displaying small amounts of text.

public sealed class TextBlock : FrameworkElement, ITextBlock, ITextBlock2, ITextBlock3, ITextBlock4, ITextBlock5public sealed class TextBlock : FrameworkElement, ITextBlock, ITextBlock2, ITextBlock3, ITextBlock4, ITextBlock5Public NotInheritable Class TextBlock Inherits FrameworkElement Implements ITextBlock, ITextBlock2, ITextBlock3, ITextBlock4, ITextBlock5
<TextBlock ...>text</TextBlock>
-or-
<TextBlock>
  oneOrMoreInlineElements
</TextBlock>
-or-
<TextBlock .../>
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

TextBlock is the primary control for displaying read-only text in apps. You can use it to display single-line or multi-line text, inline hyperlinks, and text with formatting like bold, italic, or underlined.

Text block control

TextBlock is typically easier to use and provides better text rendering performance than RichTextBlock, so it's preferred for most app UI text. It also provides many of the same formatting options for customizing how your text is rendered. Although you can put line breaks in the text, TextBlock is designed to display a single paragraph and doesn’t support text indentation. Consider a RichTextBlock if you need support for multiple paragraphs, multi-column text, or inline UI elements like images.

For more info, see the TextBlock control guide.

Text performance

Starting in Windows 10, performance improvements were made to TextBlock that decrease overall memory use and greatly reduce the CPU time to do text measuring and arranging. To find out more about these performance improvements and how to make sure you are using them, see the Performance considerations section of the TextBlock control guide.

Built-in text styles

You can use Windows 10 text styles that ship with the platform to align the style of your text with the text used in the system. Here's how to use built-in styles to align with the Windows 10 type ramp. For more info, see XAML theme resources.

<TextBlock Text="Header" Style="{StaticResource HeaderTextBlockStyle}"/>
<TextBlock Text="SubHeader" Style="{StaticResource SubheaderTextBlockStyle}"/>
<TextBlock Text="Title" Style="{StaticResource TitleTextBlockStyle}"/>
<TextBlock Text="SubTitle" Style="{StaticResource SubtitleTextBlockStyle}"/>
<TextBlock Text="Base" Style="{StaticResource BaseTextBlockStyle}"/>
<TextBlock Text="Body" Style="{StaticResource BodyTextBlockStyle}"/>
<TextBlock Text="Caption" Style="{StaticResource CaptionTextBlockStyle}"/>

The rendered text looks like this:

Text block styles

Color fonts

By default TextBlock supports display color fonts. The default color font on the system is Segoe UI Emoji and the TextBlock will fall back to this font to display the glyphs in color. For more info, see the IsColorFontEnabled property.

<TextBlock FontSize="30">Hello ☺⛄☂♨⛅</TextBlock>

The rendered text looks like this:

Text block with color font

Examples

This example demonstrates a TextBlock with text selection enabled and text wrapping enabled.

The rendered text looks like this:

Text block with wrapped text

<TextBlock Text="This text demonstrates the wrapping behavior of a TextBlock." Width="240"
           IsTextSelectionEnabled="True" TextWrapping="Wrap"/>
TextBlock textBlock = new TextBlock();
textBlock.Text = "This text demonstrates the wrapping behavior of a TextBlock.";
textBlock.Width = 240;
textBlock.IsTextSelectionEnabled = true;
textBlock.TextWrapping = TextWrapping.Wrap;

// Add TextBlock to the visual tree.
rootPanel.Children.Add(textBlock);

This example shows how to customize the appearance of a TextBlock with a single Run of text. The FontWeight, FontFamily, FontStyle, Foreground color, and SelectionHighlightColor properties are customized.

The rendered text looks like this:

Text block with formatted text

<TextBlock Text="This text demonstrates some TextBlock properties." 
           IsTextSelectionEnabled="True" 
           SelectionHighlightColor="Green" 
           Foreground="Blue" 
           FontWeight="Light" 
           FontFamily="Arial" 
           FontStyle="Italic"/>
TextBlock textBlock = new TextBlock();
textBlock.Text = "This text demonstrates some TextBlock properties.";
textBlock.IsTextSelectionEnabled = true;
textBlock.SelectionHighlightColor = new SolidColorBrush(Windows.UI.Colors.Green);
textBlock.Foreground = new SolidColorBrush(Windows.UI.Colors.Blue);
textBlock.FontWeight = Windows.UI.Text.FontWeights.Light;
textBlock.FontFamily = new FontFamily("Arial");
textBlock.FontStyle = Windows.UI.Text.FontStyle.Italic;

// Add TextBlock to the visual tree.
rootPanel.Children.Add(textBlock);

This example demonstrates customizing different inline elements within a TextBlock.

The rendered text looks like this:

Text block with formatted inline elements

<TextBlock IsTextSelectionEnabled="True" SelectionHighlightColor="Green" FontFamily="Arial">
    <Run Foreground="Blue" FontWeight="Light" Text="This text demonstrates "></Run>
    <Span FontWeight="SemiBold">
        <Run FontStyle="Italic">the use of inlines </Run>
        <Run Foreground="Red">with formatting.</Run>
    </Span>
</TextBlock>
TextBlock textBlock = new TextBlock();
textBlock.IsTextSelectionEnabled = true;
textBlock.SelectionHighlightColor = new SolidColorBrush(Windows.UI.Colors.Green);
textBlock.FontFamily = new FontFamily("Arial");

// For Run and Span, add 'using Windows.UI.Xaml.Documents;'
Windows.UI.Xaml.Documents.Run run = new Run();
run.Foreground = new SolidColorBrush(Windows.UI.Colors.Blue);
run.FontWeight = Windows.UI.Text.FontWeights.Light;
run.Text = "This text demonstrates ";

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

Run run1 = new Run();
run1.FontStyle = Windows.UI.Text.FontStyle.Italic;
run1.Text = "the use of inlines ";

Run run2 = new Run();
run2.Foreground = new SolidColorBrush(Windows.UI.Colors.Red);
run2.Text = "with formatting.";

span.Inlines.Add(run1);
span.Inlines.Add(run2);
textBlock.Inlines.Add(run);
textBlock.Inlines.Add(span);

// Add TextBlock to the visual tree.
rootPanel.Children.Add(textBlock);

This example shows how to use an inline hyperlink. For more info, see Hyperlink.

<TextBlock><Hyperlink xml:space="preserve" NavigateUri="http://www.bing.com"> Hyperlink to Bing </Hyperlink></TextBlock>
//Create a TextBlock this is needed to put the hyperlink inside
TextBlock textBlock = new TextBlock();

// Create a Hyperlink and a Run. 
// The Run is used as the visible content of the hyperlink.
Hyperlink hyperlink = new Hyperlink();
Run run = new Run();

// Set the Text property on the run. 
// This is the visible text of the hyperlink.
run.Text = " Hyperlink to Bing ";

// Add the Run to the Hyperlink. 
hyperlink.Inlines.Add(run);

// Set the URI for the Hyperlink. 
hyperlink.NavigateUri = new Uri("http://www.bing.com");

// Add the Hyperlink to the TextBlock.
textBlock.Inlines.Add(hyperlink);

// Add TextBlock to the visual tree.        
rootPanel.Children.Add(textBlock);

The following example shows how to use the LineStackingStrategy property to determine how the line boxes are created for text lines of a TextBlock. The first TextBlock has a LineStackingStrategy value of MaxHeight and the second TextBlock has a value of BlockLineHeight.

<StackPanel>

<!-- This TextBlock has a LineStackingStrategy set to "MaxHeight". -->
<TextBlock FontFamily="Verdana"
           LineStackingStrategy="MaxHeight" 
           LineHeight="10" 
           Width="500" 
           TextWrapping="Wrap" >
    Use the <Run FontSize="30">LineStackingStrategy</Run> property to determine how a line box is
    created for each line. A value of <Run FontSize="20">MaxHeight</Run> specifies that the stack
    height is the smallest value that contains all the inline elements on that line when those
    elements are properly aligned. A value of <Run FontSize="20">BlockLineHeight</Run> specifies
    that the stack height is determined by the block element LineHeight property value.
</TextBlock>

    <!-- With a margin pushing down 20 pixels, draw a line just above the second textblock. -->
    <!-- The fonts will reach above the LineHeight size and over the line. -->
<StackPanel Margin="0,20,0,0" HorizontalAlignment="Center">
    <Line Stroke="Green"  X2="500" />
</StackPanel>

            <!-- Here is the same TextBlock but the LineStackingStrategy is set to "BlockLineHeight". -->
<TextBlock FontFamily="Verdana"
           LineStackingStrategy="BlockLineHeight" 
           LineHeight="10" 
           Width="500" 
           TextWrapping="Wrap">
    Use the <Run FontSize="30">LineStackingStrategy</Run> property to determine how a line box is
    created for each line. A value of <Run FontSize="20">MaxHeight</Run> specifies that the stack
    height is the smallest value that contains all the inline elements on that line when those
    elements are properly aligned. A value of <Run FontSize="20">BlockLineHeight</Run> specifies
    that the stack height is determined by the block element LineHeight property value.
</TextBlock>

</StackPanel>

Constructors

TextBlock() TextBlock() TextBlock()

Properties

BaselineOffset BaselineOffset BaselineOffset

Returns a value by which each line of text is offset from a baseline.

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

The amount by which each line of text is offset from the baseline, in device independent pixels. System.Double.NaN indicates that an optimal baseline offset is automatically calculated from the current font characteristics. The default is System.Double.NaN.

Attributes

Remarks

Note

Visual C++ component extensions (C++/CX) doesn't have a constant for NaN, it uses a value, which appears as "-1.#IND" followed by zeros.

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

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 object for the end of text content in the TextBlock.

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

A TextPointer object for the end of text content in the TextBlock.

Attributes

ContentStart ContentStart ContentStart

Gets a TextPointer object for the start of text content in the TextBlock.

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

A TextPointer object for the start of text content in the TextBlock.

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
<TextBlock FontFamily="fontFamily" />
-or-
<TextBlock FontFamily="fontFamilyName[,fallbackFontFamilyName]" />
-or-
<TextBlock 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

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
<TextBlock FontSize="double" .../>
Value
double double double

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

Attributes

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
<TextBlock FontStretch="fontStretchMemberName"/>
Value
FontStretch FontStretch FontStretch

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

Attributes

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
<TextBlock FontStyle="fontStyleMemberName"/>
Value
FontStyle FontStyle FontStyle

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

Attributes

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

public FontWeight FontWeight { get; set; }public FontWeight FontWeight { get; set; }Public ReadWrite Property FontWeight As FontWeight
<TextBlock 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

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

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

Value
Brush Brush Brush

The brush used to apply to the text content. 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

TextBlock isn't a control so you don't use templates to change its appearance. Instead you can use styles. It's more common (and a better practice) to use named styles for TextBlock appearance than it is to set inline attributes for each TextBlock instance, particularly if you are using common values in many elements. For more info on styles, see Quickstart: Styling controls.

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 TextBlock 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 TextBlock instances. You can change the foreground value for all default text by overriding the resource named DefaultTextForegroundThemeBrush in App.xaml.

Examples

The following XAML example shows how to set the Foreground property to a solid color using an inline-defined attribute value "Maroon". The XAML parser uses this "Maroon" value to refer to the named color Colors.Maroon, and to create the SolidColorBrush instance that supplies the runtime value.

<TextBlock
  FontSize="32"
  FontWeight="Bold"
  Foreground="Maroon">
  Maroon
</TextBlock>
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

Inlines Inlines Inlines

Gets the collection of inline text elements within a TextBlock.

public InlineCollection Inlines { get; }public InlineCollection Inlines { get; }Public ReadOnly Property Inlines As InlineCollection
<TextBlock
  oneOrMoreInlineElements
</TextBlock>
Value
InlineCollection InlineCollection InlineCollection

A collection that holds all inline text elements from the TextBlock. The default is an empty collection.

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 PlatForm::Boolean IsColorFontEnabled { get; set; }public bool IsColorFontEnabled { get; set; }Public ReadWrite Property IsColorFontEnabled As bool
<TextBlock 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 PlatForm::Boolean IsTextScaleFactorEnabled { get; set; }public bool IsTextScaleFactorEnabled { get; set; }Public ReadWrite Property IsTextScaleFactorEnabled As bool
<TextBlock 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 indicates whether text selection is enabled in the TextBlock, either through user action or calling selection-related API.

public PlatForm::Boolean IsTextSelectionEnabled { get; set; }public bool IsTextSelectionEnabled { get; set; }Public ReadWrite Property IsTextSelectionEnabled As bool
<TextBlock IsTextSelectionEnabled="bool" />
Value
bool bool bool

true if text selection is enabled; otherwise, false.

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

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

A value that indicates how a line box is determined for each line of text in the TextBlock. 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 TextBlock.

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

The maximum lines of text shown in the TextBlock. 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
<TextBlock OpticalMarginAlignment="None"/>
-or-
<TextBlock 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

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

public Thickness Padding { get; set; }public Thickness Padding { get; set; }Public ReadWrite Property Padding As Thickness
<TextBlock Padding="uniform"/>
- or -
<TextBlock Padding="left&Right,top&Bottom"/>
- or -
<TextBlock 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.

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 PlatForm::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 TextBlock.

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
<TextBlock 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 system uses base text styles to supply a runtime value for apps (unless you specifically override that style). The practical default is a brush using the theme resource TextSelectionHighlightThemeColor.

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

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.

Text Text Text

Gets or sets the text contents of a TextBlock.

public PlatForm::String Text { get; set; }public string Text { get; set; }Public ReadWrite Property Text As string
<TextBlock Text="string"/>
Value
string string string

A string that specifies the text contents of this TextBlock. The default is an empty string.

Attributes

TextAlignment TextAlignment TextAlignment

Gets or sets a value that indicates the horizontal alignment of text content.

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

The text alignment. 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

The 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
Additional features and requirements
Device family
Windows 10 Creators Update (introduced v10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v4)

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
Additional features and requirements
Device family
Windows 10 Creators Update (introduced v10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v4)

TextLineBounds TextLineBounds TextLineBounds

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

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

A value that indicates how the line box height is determined for each line of text in the TextBlock. 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

TextProperty TextProperty TextProperty

Identifies the Text dependency property.

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

The identifier of the Text dependency property.

Attributes

TextReadingOrder TextReadingOrder TextReadingOrder

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

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

A value that indicates how the reading order is determined for the TextBlock. 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 the text trimming behavior to employ when content overflows the content area.

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

One of the TextTrimming values that specifies the text trimming behavior to employ. 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 how the TextBlock wraps text.

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

A value that indicates how the TextBlock wraps text. The default is NoWrap.

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 of the TextWrapping dependency property.

Attributes

Methods

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

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

public PlatForm::Boolean 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 TextBlock, or focus was already there. false if the TextBlock is not focusable.

Attributes

Remarks

GetAlphaMask() GetAlphaMask() GetAlphaMask()

Returns a mask that represents the alpha channel of the text as a CompositionBrush.

public CompositionBrush GetAlphaMask()public CompositionBrush GetAlphaMask()Public Function GetAlphaMask() As CompositionBrush
Returns

A mask that represents the alpha channel of the text in a TextBlock.

Attributes
Additional features and requirements
Device family
Windows 10 Anniversary Edition (introduced v10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v3)

Remarks

This method gets an alpha mask from the text as a CompositionBrush that you can use as an input to composition shadows and effects. The alpha mask CompositionBrush has the same alignment and stretch property values that the source XAML element applies to its rendered content so that you can use those values to correctly position shadows or effects relative to the XAML element.

Version compatibility

The GetAlphaMask method is not available prior to Windows 10, version 1607. If your app’s 'minimum platform version' setting in Microsoft Visual Studio is less than the 'introduced version' shown in the Requirements block later in this page, you must design and test your app to account for this. For more info, see Version adaptive code.

To avoid exceptions when your app runs on previous versions of Windows 10, do not call this method without first performing a runtime check. This example shows how to use the ApiInformation class to check for the presence of this method before you use it.

if (ApiInformation.IsMethodPresent("Windows.UI.Xaml.Controls.TextBlock", "GetAlphaMask"))
{
    var compositionBrush = textBlock1.GetAlphaMask();
}

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

Selects a range of text in the TextBlock.

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 WPF and 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 TextBlock.

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
<TextBlock ContextMenuOpening="eventhandler" />
Attributes

SelectionChanged SelectionChanged SelectionChanged

Occurs when the text selection has changed.

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

See Also