TOC

This article has been localized into Czech by the community.

Ovládací prvek Rich Text:

Vytvoření FlowDocument z Code-behind

Zatím jsme vytvářeli náš FlowDocument přímo v XAML. Prezentace dokumentu v XAML má smysl, protože XAML je hodně podobný HTML, který se používá po celém Internetu k vytváření informačních stránek. To však samozřejmě neznamená, že nemůžete vytvořit FlowDocument z Code-behind. To samozřejmě je možné, protože každý prvek je reprezentován třídou, ze které můžete vytvořit instance a pak je přidat pomocí starého, dobrého kódu Jazyka C#.

Základním příkladem, je tady náš známý "Hello, world!" příklad, který jsme uvedli v jednom z prvních článků. Zde je vytvořen z Code-behind místo 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;
		}
	}
}

Ve srovnání s malým množstvím XAML kódu, potřebného k dosažení stejného výsledku, je to sotva působivé:

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

Netýká se to toho příkladu, ale někdy to prostě dává větší smysl zvládnout věci pomocí Code-behind, a jak můžete vidět, je to určitě možné.


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!