Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to assign a Run to a text property, programmatically?

Tags:

c#

wpf

xaml

I know in XAML we can do...

<TextBlock FontSize="18">
   This is my text <LineBreak/>
   <Run FontSize="24" FontWeight="Bold">My big bold text</Run>
</TextBlock>

Question is, how can I assign a Run into a text (string) property, programmatically?

like image 658
Néstor Sánchez A. Avatar asked Jun 05 '12 23:06

Néstor Sánchez A.


1 Answers

If you look at TextBlock you will see that ContentProperty is set to Inlines

[Localizability(LocalizationCategory.Text), ContentProperty("Inlines")]
public class TextBlock : FrameworkElement, ...

This means that you will add Inline elements to the property Inlines for everyting added between the opening and closing tag of TextBlock.

So the c# equivalent to your Xaml is

TextBlock textBlock = new TextBlock();
textBlock.FontSize = 18;
textBlock.Inlines.Add("This is my text");
textBlock.Inlines.Add(new LineBreak());
Run run = new Run("My big bold text");
run.FontSize = 24;
run.FontWeight = FontWeights.Bold;
textBlock.Inlines.Add(run);
like image 76
Fredrik Hedblad Avatar answered Sep 28 '22 05:09

Fredrik Hedblad