Существуют различные Inline
элементы, которые могут вам помочь, для простейших вариантов форматирования, которые вы можете использовать Bold
, Italic
а также Underline
:
<TextBlock>
Sample text with <Bold>bold</Bold>, <Italic>italic</Italic> and <Underline>underlined</Underline> words.
</TextBlock>
Я думаю, стоит отметить, что эти элементы на самом деле являются сокращениями для Span
элементов с различными установленными свойствами (например: для Bold
, FontWeight
свойство установлено в FontWeights.Bold
).
Это подводит нас к следующему варианту: вышеупомянутому Span
элементу.
С помощью этого элемента вы можете добиться тех же эффектов, что и выше, но вам предоставляется еще больше возможностей; вы можете установить (среди прочего) свойства Foreground
или Background
:
<TextBlock>
Sample text with <Span FontWeight="Bold">bold</Span>, <Span FontStyle="Italic">italic</Span> and <Span TextDecorations="Underline">underlined</Span> words. <Span Foreground="Blue">Coloring</Span> <Span Foreground="Red">is</Span> <Span Background="Cyan">also</Span> <Span Foreground="Silver">possible</Span>.
</TextBlock>
Span
Элемент может также содержать другие элементы , как это:
<TextBlock>
<Span FontStyle="Italic">Italic <Span Background="Yellow">text</Span> with some <Span Foreground="Blue">coloring</Span>.</Span>
</TextBlock>
Есть еще один элемент, который очень похож на Span
, он называется Run
. Run
Не может содержать другие встроенные элементы в то время как Span
банки, но вы можете легко связать с переменной к Run
«s Text
собственности:
<TextBlock>
Username: <Run FontWeight="Bold" Text="{Binding UserName}"/>
</TextBlock>
Кроме того, вы можете выполнить все форматирование из кода программной части, если хотите:
TextBlock tb = new TextBlock();
tb.Inlines.Add("Sample text with ");
tb.Inlines.Add(new Run("bold") { FontWeight = FontWeights.Bold });
tb.Inlines.Add(", ");
tb.Inlines.Add(new Run("italic ") { FontStyle = FontStyles.Italic });
tb.Inlines.Add("and ");
tb.Inlines.Add(new Run("underlined") { TextDecorations = TextDecorations.Underline });
tb.Inlines.Add("words.");