TOC

This article has been localized into German by the community.

Rich Text Steuerelemente:

Erstellen eines FlowDocument im Code-behind

Bisher haben wir das FlowDocument direkt in XAML erstellt. Es macht Sinn das Dokument in XAML einzufügen, da XAML stark an HTML angelehnt ist, was für alle Internetseiten zur Darstellung von Informationen dient. Allerdings bedeutet das nicht, dass wir kein FlowDocument im Code-behind erstellen können. Es wird genau wie all die anderen Steuerelemente durch eine Klasse erzeugt und kann wie üblich in C# Code erzeugt werden.

Als minimales Beispiel hier unser "Hallo, Welt!" aus unseren ersten Artikeln, erzeugt im Code-behind, anstatt in XAML.

<Window x:Class="WpfTutorialSamples.Rich_text_controls.CodeBehindFlowDocumentSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="CodeBehindFlowDocumentSample" Height="200" Width="300">
    <Grid>
        <FlowDocumentScrollViewer Name="fdViewer" />
    </Grid>
</Window>
using System;
using System.Windows;
using System.Windows.Documents;
using System.Windows.Media;

namespace WpfTutorialSamples.Rich_text_controls
{
	public partial class CodeBehindFlowDocumentSample : Window
	{
		public CodeBehindFlowDocumentSample()
		{
			InitializeComponent();

			FlowDocument doc = new FlowDocument();

			Paragraph p = new Paragraph(new Run("Hello, world!"));
			p.FontSize = 36;
			doc.Blocks.Add(p);

			p = new Paragraph(new Run("The ultimate programming greeting!"));
			p.FontSize = 14;
			p.FontStyle = FontStyles.Italic;
			p.TextAlignment = TextAlignment.Left;
			p.Foreground = Brushes.Gray;
			doc.Blocks.Add(p);

			fdViewer.Document = doc;
		}
	}
}

Verglichen mit XAML gegenüber dem Code-behind ist es schon beeindruckend, wie viel Code dafür geschrieben werden muss.

<FlowDocument>
    <Paragraph FontSize="36">Hello, world!</Paragraph>
    <Paragraph FontStyle="Italic" TextAlignment="Left" FontSize="14" Foreground="Gray">The ultimate programming greeting!</Paragraph>
</FlowDocument>

Manchmal macht es mehr Sinn im Code-behind zu arbeiten. Es ist abhängig vom Vorhaben, bzw. wie tief man sich in die Materie gräbt. Beides ist möglich.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!