WPF 流文档

WPF文本显示:

WPF面向的是UI展现,而文本显示无疑是UI层中的重要功能之一。WPF提供了XPS
(XML 文件规范)
和Flow Document (流文档)
来在不同的场景下展现或者操作文档的显示。XPS(XML
文件规范)针对打印和面向页面的内容,而”流文档”则针对屏幕显示以及提供更动态和可以论证的更复杂模型。“流文档”几乎适用于与文本内容相关的所有方面,从产品说明到整本书籍。

Flow Document是WPF3.0中提供的一个用于显示的新功能,它给了开发人员另一种选择去显示内容。Flow
Document通过类似 HTML
文档的格式定义文本流,但其功能更强大,并可提供明显更先进的布局选项。它内置了很多的元素,例如,Figure, Paragraph, Section, Floater, Table, InlineUIContainer等可以通过不同的布局和元素控制其显示方式。并且,它支持对图像的支持,使其可以像在HTML中一样随意控制。再加上其默认支持的导航,显示模式,搜索,让其内容展现方式有了进一步的提高。

Flow Document (流文本):

Flow Document定义了这个流文档的顶级显示模式,在其内部可以包含诸如Section, Paragraph等标签用来控制其层级显示模式。这就类似于HTML中的DIV,TABLE等区域控制标签一样用来组成文档的显示结构。定义一个流文档很简单,你可以通过声明一个Flow
Document和其内部的显示结构即可,例如以下代码通过显示了如何来创建了简单的显示功能。http://www.360doc.com/content/08/0730/16/51673_1489442.shtml

显示模式 :

Flow Document默认支持三种展现方式,这也对应了上图中右下方的三个按钮。默认的Flow Document会以FlowDocumentReader来生成。对于不同的展现方式,其包含的导航,搜索等都有所不同,甚至缺少某些功能。

·        
FlowDocumentPageViewer
:以单独的页面显示流文档,此选项以单独的页面显示流文档,让页面翻转而非滚动。这与 Word
中的“阅读版式”类似。以                   下XAML片段声明了文章以FlowDocumentPageViewer的方式显示。FlowDocumentPageViewer将提供以翻页的方式来导航内
                  容页。通过你调整窗口的大小,流文档会根据内容的位置、尺寸来调整流的布局(这就是你为什么会在变化窗口大小的                   时候看到多列的原因,流的布局变化)。

·        
FlowDocumentScrollViewer:以连续的流显示文档,通过滚动条导航。使用一个滚动条以连续的流显示文档,类似网页或 Microsoft Word
中的”Web
版                   式”。ScrollViewer模式仅仅是以连续的方式显示流文档的内容,所以其不具备PageViewer的可以自动变化流布局的高级功
                  能。在调整窗口大小时,流文档无法以多页或多列的方式显示。

·        
FlowDocumentReader
:   组合了滚动查看器和页面查看器,让用户可以在两种方法之间切换。这是用于流文档的默认选项。此控件组合了滚动查看                   器和页面查看器,让用户可以在两种方法之间切换。这是用于流文档的默认控件,而且对于以显示复杂文本为特色的应用                   程序通常是一个不错的选择。除了将标记用FlowDocumentReader替换前边的两个标记中任何一个,便可以轻松使用这种
                  高级的展现。

转自:http://www.cnblogs.com/tianguook/p/4165476.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-09 10:14:26

WPF 流文档的相关文章

流文档 打印范围

//打印页码范围设置 private void PrintPageRangeSet(DocumentPaginator doc,int pageFrom,int pageTo) { //写入内存的XPS文档 var ms = new MemoryStream(); string pack = "pack://temp" + ".xps"; var package = Package.Open(ms, FileMode.Create, FileAccess.ReadW

前端学习 -- Css -- 文档流

文档流 文档流处在网页的最底层,它表示的是一个页面中的位置, 我们所创建的元素默认都处在文档流中 元素在文档流中的特点 块元素 块元素在文档流中会独占一行,块元素会自上向下排列. 块元素在文档流中默认宽度是父元素的100%. 块元素在文档流中的高度默认被内容撑开. 内联元素 1.内联元素在文档流中只占自身的大小,会默认从左向右排列,如果一行中不足以容纳所有的内联元素,则换到下一行,继续自左向右. 2.在文档流中,内联元素的宽度和高度默认都被内容撑开. 当元素的宽度的值为auto时,此时指定内边距

内联元素的盒子模型与文档流定位padding属性

        内联元素的盒子模型 1.内联元素不能设置width宽度和高度height span{width:200px ; height:200px}   与     span{width:100px ; height:100px}   表现效果相同,由此可见内联元素不可以设置高度和宽度 2.内联元素可以设置水平方向的内边距padding-left或padding-right span{padding-left:20px ; padding-right:200px} 3.内联元素可以设置垂直

CSS 文档流技巧,让布局更简单

看文章之前,先来看两个例子.这是我们在项目中最常见的项目布局方式. 案例一:多个容器按照相同间距水平排列. 案例二:常见的菜单导航 看到这两个案例时,你可以先短暂的想想平时都是如何实现的,很多同学的答案应该是这样的. // 案例一 <div class="demo"> <div class="item"></div> <div class="item"></div> <div cl

文档流&amp;文字&amp;CSS常用命令

文档流 文档流就是文档内元素流动方向 流动方向 内联元素从左往右流,宽度不够,之字形,且元素会被截断 块元素从上往下流动,一排一排 注意事项 内联元素中有英文单词,流动时宽度不够,英文单词会整体迁移,不会被打断 若想打断上述联结,请使用css属性 /*想打断的内联元素*/{ word-break: break-all; display: inline-block; } 脱离文档流 类似悬浮在页面上一样 position: fixed; position: absolute; 关于字体 一般,页面

标准文档流

标准流指的是在不使用其他的与排列和定位相关的特殊CSS规则时,各种元素的排列规则.HTML文档中的元素可以分为两大类:行内元素和块级元素.       1.行内元素不占据单独的空间,依附于块级元素,行内元素没有自己的区域.它同样是DOM树中的一个节点,在这一点上行内元素和块级元素是没有区别的.       2.块级元素总是以块的形式表现出来,并且跟同级的兄弟块依次竖直排列,左右自动伸展,直到包含它的元素的边界,在水平方向不能并排.盒子在标准流中的定位原则margin控制的是盒子与盒子之间的距离,

理解文档流

这个暑假里的实习是真正让我体会到了做前端一定要理解文档流.之前一直处于必须给元素加边框才能看到我讲元素放置在了文档中的什么位置.理解了文档流,脑海中就会定位到相应的元素. 文档流,其实本没有这样的定义,有的是普通流的概念.简单说就是元素按照其在HTML中的位置顺序决定排布的过程.并且这种过程遵循标准的描述. 即将窗体自上而下的分成一行一行,并在每行中按照从左至右的顺序排放,即为文档流.所有的HTML都在块框或者行内框中. 当浏览器开始渲染HTML文档,它从窗口的顶端开始,经过整个文档内容的过程中

position脱离文档流与浮动脱离文档流的区别

以前我觉得position:absolute;是可以脱离文档流的,float:left;也可以脱离文档流,就觉得二者是一样的,感觉可以去浮动的方法来解决position:absolute;引起的父元素塌陷问题,结果证明我错了...下边是一个demo. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 &l

css脱离文档流

Q:什么是文档流? A:简单的说可以理解为元素在页面上出现的先后顺序. Q:什么情况下会脱离文档流? A:当使用“浮动”与“绝对定位”时. Q:脱离文档流就不占据空间了吗? A:可以这么说.更准确地一点说,是一个元素脱离文档流之后,其他的元素在定位的时候会当做没看见它,两者位置重叠都是可以的. Q: 脱离文档流是不是指该元素从dom树中脱离? A: 不是,用浏览器的审查元素就可以看到脱离文档流的元素(例如被float了)依然会出现在dom树里. 需要注意的是,使用float脱离文档流时,其他盒子