This article has been localized into Danish by the community.
Opret et FlowDocument fra code-behind
Indtil videre har vi oprettet vores FlowDocument instanser direkte i XAML. Repræsentation af et dokument i XAML giver mening, da XAML er rigtig meget som HTML, der bruges over hele internettet til at lave informationssider. Men det betyder naturligvis ikke, at du ikke kan oprette FlowDocument instanser fra code-behind - selvfølgelig kan du det, eftersom alle elementer repræsenteres af en klasse, som du kan instantiere og tilføje med god, gammeldags C# kode.
Som et absolut minimumseksempel er her vores "Hallo verden!" eksempel fra en af de første artikler, oprettet fra code-behind i stedet for 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;
}
}
}
Sammenligned med den lille mænge XAML, der kræves for at lave nøjagtig det samme, er dette ikke imponerende:
<FlowDocument>
<Paragraph FontSize="36">Hello, world!</Paragraph>
<Paragraph FontStyle="Italic" TextAlignment="Left" FontSize="14" Foreground="Gray">The ultimate programming greeting!</Paragraph>
</FlowDocument>
Det er dog ikke pointen her - nogle gange giver det bare mere mening at håndtere tingene fra code-behind, og som du kan se, er det afgjort muligt.