This article has been localized into French by the community.
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.