WPF - TextBlock - Format Text Programmatically
29,508
Solution 1
Visual Basic Version:
Dim tb As New TextBlock
Dim b As New Bold
b.Inlines.Add(New Run("bold text"))
tb.Inlines.Add(b)
tb.Inlines.Add(New Run("random non bold text"))
C# Version:
TextBlock tb = new TextBlock();
var bold = new Bold(new Run("Bold Text"));
tb.Inlines.Add(bold);
var normal = new Run("Normal Text"));
tb.Inlines.Add(normal);
Solution 2
Here is the code from the MSDN website, which I think will help (http://msdn.microsoft.com/en-us/library/system.windows.controls.textblock.aspx).
XAML
<TextBlock Name="textBlock1" TextWrapping="Wrap">
<Bold>TextBlock</Bold> is designed to be <Italic>lightweight</Italic>,
and is geared specifically at integrating <Italic>small</Italic> portions
of flow content into a UI.
</TextBlock>
<Button Width="100" Margin="10">Click Me</Button>
<TextBlock Name="textBlock2"
TextWrapping="Wrap" Background="AntiqueWhite" TextAlignment="Center"
>
By default, a TextBlock provides no UI beyond simply displaying its contents.
</TextBlock>
<Button Width="100" Margin="10">Click Me</Button>
C#
TextBlock textBlock1 = new TextBlock();
TextBlock textBlock2 = new TextBlock();
textBlock1.TextWrapping = textBlock2.TextWrapping = TextWrapping.Wrap;
textBlock2.Background = Brushes.AntiqueWhite;
textBlock2.TextAlignment = TextAlignment.Center;
textBlock1.Inlines.Add(new Bold(new Run("TextBlock")));
textBlock1.Inlines.Add(new Run(" is designed to be "));
textBlock1.Inlines.Add(new Italic(new Run("lightweight")));
textBlock1.Inlines.Add(new Run(", and is geared specifically at integrating "));
textBlock1.Inlines.Add(new Italic(new Run("small")));
textBlock1.Inlines.Add(new Run(" portions of flow content into a UI."));
textBlock2.Text =
"By default, a TextBlock provides no UI beyond simply displaying its contents.";
Related videos on Youtube
Author by
Ali Mst
I am an IT Software Architect from Salt Lake City, Utah.
Updated on April 28, 2020Comments
-
Ali Mst about 4 years
In the TextBlock object you can format the text in the XAML like this:
<TextBlock> <Bold>bold text</Bold> random non bold next </TextBlock>
How do you do the "Bold" tags programmatically?
I tried just putting them in the text property and it just printed them out (the tags were printed as text).
-
Ali Mst over 14 yearsThanks for both the great answers. Upvoted both. Picked the one I did because it was specific to my example.
-
digz6666 almost 11 yearsMore better solution: stackoverflow.com/questions/947614/…
-
-
Christoph over 9 yearsDoes anybody know a way like tb.Inlines.Clear(); tb.Inlines.Add(Parse(myXamlText)); </code> ?