TextBlock.Foreground Property


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

 property Brush ^ Foreground { Brush ^ get(); void set(Brush ^ value); };
Brush Foreground();

void Foreground(Brush value);
public Brush Foreground { get; set; }
var brush = textBlock.foreground;
textBlock.foreground = brush;
Public Property Foreground As Brush
<TextBlock Foreground="{StaticResource resourceName}"/>
- or -
<TextBlock Foreground="colorString"/>
- or -

Property Value

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.


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

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.

Applies to

See also