TOC

This article has been localized into Vietnamese by the community.

Các điều khiển Rich Text:

Điều khiển FlowDocumentPageViewer

Ở trong bài viết trước, chúng ta đã thảo luận về FlowDocumentScrollViewer, cùng vơi một kĩ thuật liên quan đến FlowDocument. Trong bài viết này, chúng tôi sẽ tập trung vào FlowDocumentPageViewer, thay vì chỉ cung cấp văn bản cuộn khi văn bản dài hơn không gian có sẵn, hãy chia toàn bộ tài liệu thành các trang. Điều này cho phép bạn điều hướng từ trang này sang trang khác, mang lại trải nghiệm đọc giống như một cuốn sách hơn.

Hãy bắt đầu với một ví dụ đơn giản để xem cách FlowDocumentPageViewer xử lí đoạn text Lorem Ipsum của chúng ta:

<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>

Chú ý cách cắt bỏ văn bản dài và ở dưới cùng, bạn có thể điều hướng giữa các trang. Đây không phải là tất cả những gì FlowDocumentPageViewer sẽ làm cho bạn - chỉ cần xem điều gì sẽ xảy ra khi chúng ta mở rộng cửa sổ :

Thay vì chỉ kéo dài văn bản vô thời hạn, FlowDocumentPageViewer chia văn bản của bạn thành các cột, để ngăn các dòng trở nên quá dài. Bên cạnh việc nhìn đẹp, điều này cũng làm tăng khả năng đọc, vì các văn bản có dòng rất dài sẽ khó đọc hơn. Tất nhiên, số lượng trang sẽ được tự động điều chỉnh, giảm số lượng trang từ 5 xuống 2.

Lớp FlowDocument có một số các thuộc tính cho phép bạn kiểm soát cách thức và thời điểm chúng được sử dụng. Sử dụng chúng rất đơn giản, nhưng một ví dụ hoàn chỉnh vượt ra ngoài phạm vi của hướng dẫn này. Thay vào đó, hãy xem bài viết MSDN này, trong đó một số thuộc tính được sử dụng trong một ví dụ hay: How to: Use FlowDocument Column-Separating Attributes.

Tìm kiếm

Khi bạn sắp xem trong chương tiếp theo, FlowDocumentReader wrapper hỗ trợ tìm kiếm ngay lập tức, với các điều khiển tìm kiếm trong thanh công cụ và mọi thứ. Tuy nhiên, tất cả ba FlowDocument wrappers chỉ đọc sẽ được thảo luận trong hướng dẫn này trên thực tế hỗ trợ tìm kiếm, nó chỉ phải được gọi theo cách thủ công cho hai trình đầu tiên (FlowDocumentScrollViewer và FlowDocumentPageViewer).

Cả ba kiểu xem đều hỗ trợ phím tắt Ctrl+F để bắt đầu tìm kiếm, nhưng nếu bạn muốn sử dụng phím này từ một button , bạn chỉ cần gọi phương thức Find(). Đây là một ví dụ:

<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();
		}
	}
}

Ấn vào button Search hoặc nhấn tổ hợp phím Ctrl+F, và bạn đã có thể sử dụng tính năng tìm kiếm của FlowDocumentPageViewer. Như đã nhắc đến ở trên, điều này hoạt động với cả FlowDocumentScrollViewer và FlowDocumentPageViewer (FlowDocumentPageReader mặc định có một nút tìm kiếm), nhưng hãy chắc chắn rằng ô tìm kiếm có đủ không gian ngang trên thanh toolbar - hoặc bạn sẽ không thấy chúng khi bạn sử dụng Find() !


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!