FlowDocumentReader是您可以放置在FlowDocument周围的最高级的只读包装器。 它提供了一些按钮,允许最终用户在FlowDocumentScrollViewer和FlowDocumentPageViewer提供的渲染模式之间切换,开箱即用的文档搜索以及放大和缩小的控件。
所有这些功能也使FlowDocumentReader成为三个只读包装器中最重的一个,但对于大多数常规大小的文档来说,这几乎不是问题。 以下是FlowDocumentReader的外观示例:
此屏幕截图是基于页面的视图,这是默认视图。 您可以使用缩放控件左侧的按钮在视图模式之间切换。 在工具栏的左侧,您可以使用搜索文档的控件,就像我在屏幕截图中所做的那样。
这是代码,它将为您提供上图:
<Window x:Class="WpfTutorialSamples.Rich_text_controls.FlowDocumentReaderSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="FlowDocumentReaderSample" Height="250" Width="550">
<Grid>
<FlowDocumentReader>
<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>
</FlowDocumentReader>
</Grid>
</Window>
这些标记将生成一个窗口,如上面的屏幕截图所示。 这是一个屏幕截图,我们进入了双页模式并缩小了缩放:
FlowDocumentReader具有一系列属性,可以帮助您控制其工作方式。 以下是一些是重点:
ViewingMode - 控制初始查看模式。 默认值为Page,但如果您需要其他默认视图,则可以将其更改为Scroll或TwoPage。 除非明确禁用,否则最终用户仍可以更改此设置。
IsFindEnabled - 使您能够禁用文档中的搜索。 如果禁用,搜索按钮将从工具栏中删除。
IsTwoPageViewEnabled, IsPageViewEnabled 和 IsScrollViewEnabled - 允许您关闭阅读器的特定查看模式。 设置为false时,此模式不再适用于阅读器,并且该按钮将从工具栏中删除。
Zoom - 允许您设置默认缩放级别。 标准是100%,但您可以使用Zoom属性更改此值。
我们现在已经看过了FlowDocument的所有只读包装器,正如您看到的那样,选择哪一个实际上取决于手头的任务。
如果您只想使用滚动条进行简单的FlowDocument渲染,您应该使用FlowDocumentScrollViewer - 它很简单,并且是三者中空间和资源消耗最少的。 如果您需要分页视图,请使用FlowDocumentPageViewer,除非您希望用户能够在模式之间切换并能够快速搜索,在这种情况下您应该使用FlowDocumentReader。