Um einen Text innerhalb einer Textbox zu formatieren, steht einem die Klasse Run zur Verfügung. Run ist ein Element für fortlaufenden Inhalt auf Inlineebene, das formatierten oder unformatierten Lauftext enthalten kann.

1
2
3
4
<TextBlock FontSize="28" TextWrapping="Wrap">
    Hier steht <Run Foreground="Red">Text</Run> der
    <Run FontWeight="Bold" FontStyle="Italic" Foreground="Cyan" FontSize="38" TextDecorations="Underline">verschiedene Formate</Run> darstellt.
</TextBlock>

Einen Zeilenumbruch innerhalb eines Textblocks erreicht man mit

<LineBreak />

Bei einem Hyperlink kann diese Methode auch angewendet werden. (In Silverlight HyperlinkButton)

1
2
3
4
5
6
7
<TextBlock TextWrapping="Wrap">            
    <Hyperlink TextDecorations="None" NavigateUri="http://www.biggle.de">
        <Italic>Hier</Italic> <Bold>steht</Bold> ein <Underline>Hyperlink</Underline>                 
        <LineBreak />      
            über mehrere <Run Foreground="Red">Zeilen</Run>.
    </Hyperlink>
</TextBlock>

Im Hyperlinkbeispiel sieht man auch, wie man den Text kursiv,  fett geschrieben und unterstrichen, noch formatieren kann.

Selbst Bilder können so in einem TextBlock mit dargestellt werden:

1
2
3
4
5
<TextBlock>
    Das bin ich
    <LineBreak />
    <Image Source="/Images/IMG_6911_small.jpg" Width="50" />
</TextBlock>

Es ist auch möglich, innerhalb des Textblock-Controls Werte aus einem Binding heraus darzustellen:

1
2
3
4
5
6
7
8
9
<TextBlock DataContext="{Binding Order}" TextWrapping="Wrap">
    <Run TextDecorations="Underline">Ihre Bestellung</Run>
    <LineBreak />
    <Run>Produkt:</Run>
    <TextBlock Text="{Binding productName}" />
    <Run>(</Run>
        <TextBlock Text="{Binding quantity}" />
    <Run>)</Run>
</TextBlock>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public partial class MainWindow : Window
{
    public Order Order { get; set; }
 
    public MainWindow()
    {
        InitializeComponent();
        LoadOrders();
    }  
    private void LoadOrders()
    {
        Order = new Order();
        Order.productName = "Mountainbike";
        Order.quantity = 1;
 
        this.DataContext = this;
    }
}


Viel Spaß beim entwickeln : )

Text innerhalb eines TextBlock-Controls formatieren – XAML
Markiert in: