TOC

This article has been localized into Turkish by the community.

Rich Text Kontrol:

FlowDocumentPageViewer Kontrolü

Önceki yazıda FlowDocumentScrollViewer kontrolünü açıkladık, yanında bir miktar ortak FlowDocument tekniği gördük. Bu yazıda yazı eldeki boşluğa sığmayınca yazıyı kaydırmak yerine tüm dökümanı sayfalara ayıran FlowDocumentPageViewer yerleşim kavrayıcısına odaklanacağız. Bu size daha kitaba benzer şekilde sayfa sayfa gezinme imkanı sağlar.

FlowDocumentPageViewer kontrolün standart Lorem Ipsum yazısını nasıl işlediğini gösteren basit bir örnekle başlayacağız :

<Window x:Class="WpfTutorialSamples.Rich_text_controls.FlowDocumentPageViewerSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="FlowDocumentPageViewerSample" Height="300" Width="300">
    <Grid>
        <FlowDocumentPageViewer>
            <FlowDocument>
                <Paragraph>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce faucibus odio arcu, luctus vestibulum tortor congue in. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce nec lacinia neque. Donec malesuada, ligula non vestibulum cursus, urna purus pellentesque orci, aliquet accumsan dui velit ac justo. Phasellus sagittis ligula in leo dapibus, vel vestibulum felis mattis. Fusce vitae auctor nibh. Ut sit amet fringilla turpis. Aenean tincidunt feugiat sapien, quis scelerisque enim pretium commodo. Mauris fermentum posuere nulla, vitae fermentum quam malesuada in. Cras ultrices bibendum nulla eu mollis. Sed accumsan pretium magna, non sodales velit viverra id. Sed eu elit sit amet sem ullamcorper rhoncus.</Paragraph>
                <Paragraph>Nulla vitae suscipit tellus. Nunc sit amet tortor fermentum, sollicitudin enim cursus, sagittis lacus. Pellentesque tincidunt massa nisl, nec tempor nulla consequat a. Proin pharetra neque vel dolor congue, at condimentum arcu varius. Sed vel luctus enim. Curabitur eleifend dui et arcu faucibus, sit amet vulputate libero suscipit. Vestibulum ultrices nisi id metus ultrices, eu ultricies ligula rutrum. Phasellus rhoncus aliquam pretium. Quisque in nunc erat. Etiam mollis turpis cursus, sagittis felis vel, dignissim risus. Ut at est nec tellus lobortis venenatis. Fusce elit mi, gravida sed tortor at, faucibus interdum felis. Phasellus porttitor dolor in nunc pellentesque, eu hendrerit nulla porta. Vestibulum cursus placerat elit. Nullam malesuada dictum venenatis. Interdum et malesuada fames ac ante ipsum primis in faucibus.</Paragraph>
            </FlowDocument>
        </FlowDocumentPageViewer>
    </Grid>
</Window>

Uzun yazının nasıl kesildiğine ve sayfalar arasında nasıl gezindiğinize dikkat edin. Bu FlowDocumentPageViewer'ın size verebileceklerinin hepsi değil tabi ki - pencereyi genişletince ne olduğuna bir bakınız :

Sadece yazının kapladığı boyutlara göre çekip uzatmak yerine FlowDocumentPageViewer çok uzun satırlar oluşmasını önlemek için şimdi de yazınızı sütunlara böldü. Güzel görünmesi dışında okunabilirliği de arttırıyor, çok uzun satırlı yazıları okuması daha zordur. Sayfa sayısı da tabi ki ihtiyaca göre otomatik olarak 5 ten 2 ye kadar değişiyor.

FlowDocument sınıfı nasıl ve ne zaman kullanıldığını kontrol edeceğiniz bir çok çeşit özelliğe sahiptir. Bunları kullanmak çok basit ama komple bir örnek vermek bu öğreticinin kapsamı dışında kalıyor. Bunun yerine farklı özelliklerin kullanımını hoş bir örnekle gösteren şu MSDN yazısına göz atabilirsiniz : How to: Use FlowDocument Column-Separating Attributes.

Arama yapmak

Sonraki bölümde göreceğiniz üzere FlowDocumentReader yerleşim kavrayıcısı yanında arama yapılabilmesi özelliği ile beraber gelir, toolbar'da arama için kontroller ve işlevler vb. Bununla beraber bu öğreticide açıklanan tüm üç FlowDocument yerleşim kavrayıcısı da arama işlerini destekler, sadece ilk ikisi için işlemi manual uygulamalısınız (FlowDocumentScrollViewer ve FlowDocumentPageViewer).

Her üç kontrol de arama yapmak için Ctrl+F tuş kombinasyonunu destekler, fakat bunu mesela bir buton ile kullanmak isterseniz Find() metodunu çağırmalısınız. İşte bir örnek :

<Window x:Class="WpfTutorialSamples.Rich_text_controls.FlowDocumentSearchSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="FlowDocumentSearchSample" Height="300" Width="580">
    <DockPanel>
        <WrapPanel DockPanel.Dock="Top">
            <Button Name="btnSearch" Click="btnSearch_Click">Search</Button>
        </WrapPanel>
        <FlowDocumentPageViewer Name="fdViewer">
            <FlowDocument>
                <Paragraph>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce faucibus odio arcu, luctus vestibulum tortor congue in. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce nec lacinia neque. Donec malesuada, ligula non vestibulum cursus, urna purus pellentesque orci, aliquet accumsan dui velit ac justo. Phasellus sagittis ligula in leo dapibus, vel vestibulum felis mattis. Fusce vitae auctor nibh. Ut sit amet fringilla turpis. Aenean tincidunt feugiat sapien, quis scelerisque enim pretium commodo. Mauris fermentum posuere nulla, vitae fermentum quam malesuada in. Cras ultrices bibendum nulla eu mollis. Sed accumsan pretium magna, non sodales velit viverra id. Sed eu elit sit amet sem ullamcorper rhoncus.</Paragraph>
                <Paragraph>Nulla vitae suscipit tellus. Nunc sit amet tortor fermentum, sollicitudin enim cursus, sagittis lacus. Pellentesque tincidunt massa nisl, nec tempor nulla consequat a. Proin pharetra neque vel dolor congue, at condimentum arcu varius. Sed vel luctus enim. Curabitur eleifend dui et arcu faucibus, sit amet vulputate libero suscipit. Vestibulum ultrices nisi id metus ultrices, eu ultricies ligula rutrum. Phasellus rhoncus aliquam pretium. Quisque in nunc erat. Etiam mollis turpis cursus, sagittis felis vel, dignissim risus. Ut at est nec tellus lobortis venenatis. Fusce elit mi, gravida sed tortor at, faucibus interdum felis. Phasellus porttitor dolor in nunc pellentesque, eu hendrerit nulla porta. Vestibulum cursus placerat elit. Nullam malesuada dictum venenatis. Interdum et malesuada fames ac ante ipsum primis in faucibus.</Paragraph>
            </FlowDocument>
        </FlowDocumentPageViewer>
    </DockPanel>
</Window>
using System;
using System.Windows;

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

		private void btnSearch_Click(object sender, RoutedEventArgs e)
		{
			fdViewer.Find();
		}
	}
}

Sadece Search butonu tıklayarak veya (Ctrl+F) tuşlarına basarak FlowDocumentPageViewer'da arama özelliğine ulaşırsınız. Önceden belirtildiği gibi bu FlowDocumentScrollViewer ve FlowDocumentPageViewer her ikisinde de çalışır (FlowDocumentPageReader default olarak zaten bir search butonuna sahiptir). Fakat toolbar'da arama kutusu için yeterince yatay boşluk olduğundan emin olun - yoksa Find() metoduna girilince arama kutusu görünmez!


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!