TOC

This article has been localized into French by the community.

Contrôles RichText:

Création d'un FlowDocument en Code-behind

Jusqu'à présent, nous avons créé notre FlowDocument directement en XAML. Représenter un document en XAML est logique puisque le XAML est très similaire au HTML et que ce dernier est utilisé partout sur Internet pour créer des pages d'informations. Par contre, ça ne veut pas dire que vous ne pouvez pas créer de FlowDocument à partir du Code-behind. C'est tout à fait possible puisque chaque élément est représenté par une classe que vous pouvez instancier et utiliser avec du bon vieux code C#.

Comme exemple de base, voici notre "Hello, world!" d'un de nos premier article, créé en Code-behind au lieu du 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;
		}
	}
}

Pas très impressionnant en comparaison du peut de code XAML requis pour obtenir le même résultat :

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

Mais ce n'est pas le sujet ici - Il est parfois plus utiles de "faire le boulot" en Code-behind, et comme vous pouvez le constater, c'est possible.


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!