FlowDocument in WPF

WPF学习笔记-FlowDocument实现表格单元格垂直居中以及边框设置 FlowDocumentWPF的高级文档功能(如分页和列)承载流内容和设置流内容格式。其中的块元素Table可以很方便的添加并展示表格,但是其无法实现自动换行,我尝试了网上搜索解决方案以及自己尝试修改。在网上搜索了不同的解决方案,包括手动计算高度,通过Margin属性来实现类似居中的问题,或者尝试在单元格中添加BlockUIContainerl来实现居中,但是实际由于TableCell自身没有居中,或者适应宽度,最终都以失败告终。最终我通过Grid实现了该功能,而且可以跨页自动换行。 阅读详情

下图演示最常与流内容一起使用的对象:


Block 派生类

Paragraph

Paragraph 通常用于将内容分组到一个段落中。Paragraph 的最简单且最常见的用途是创建文本段落。

Section

Section 只用于包含其他 Block 派生元素。

它不会向其中包含的元素应用任何默认格式。不过,在 Section 上设置的任何属性值都适用于其子元素。使用节能够以编程方式循环访问其子级的集合。

Section 的使用方式类似于 HTML 中的 <DIV> 标记。

BlockUIContainer

使 UIElement 元素(例如 Button)能够嵌入到 Block 派生的流内容中。

List

List 用于创建项目符号列表或编号列表。

将 MarkerStyle 属性设置为 TextMarkerStyle 枚举值可确定列表的样式。

Table

Table 用于创建表。

Table 类似于 Grid 元素,但是它具有更多功能

Inline 派生类

Inline 元素通常用作在屏幕上呈现的内容的直接容器。例如,一个 Paragraph(Block 元素)可包含一个 Run(Inline 元素),而 Run 实际包含在屏幕上呈现的文本。

Run

Run 用于包含无格式文本。

您可能预期 Run 对象会在流内容中广泛使用,不过,在标记中不需要显式使用 Run 元素。

Span

Span 将其他 Inline 内容元素组织到一起。

对于 Span 元素中的内容,不应用任何继承呈现。

但是,从 Span 继承的元素(包括 Hyperlink、Bold、Italic 和 Underline)确实会向文本应用格式。

InlineUIContainer

InlineUIContainer 使 UIElement 元素(即像 Button 这样的控件)能够嵌入到 Inline 内容元素中。

是与BlockUIContainer 等效的 Inline 元素。

Figure Floater

通过 Figure 和 Floater,可以使用定位属性在流文档中嵌入内容,这些定位属性可独立于主内容流进行自定义。

Figure 或 Floater 元素通常用于突出显示或强调内容的某些部分、在主内容流中承载支持图像或其他内容、或者插入不密切相关的内容(例如广告)。

Figure

· 可定位:可以设置其水平和垂直定位点,以便相对于页面、内容、栏或段落进行停靠。还可以使用其 HorizontalOffset 和 VerticalOffset 属性指定任意偏移量。

· 可将其大小调整为栏大小的几倍:可以将 Figure 的高度和宽度设置为页面、内容或栏的高度或宽度的倍数。请注意,对于页面和内容,倍数不能大于 1。例如,可以将 Figure 的宽度设置为"页面的 0.5 倍"、"内容的 0.25 倍"或"栏的 2 倍"。还可以将高度和宽度设置为绝对像素值。

· 不分页:如果 Figure 中的内容无法容纳在 Figure 内部,它会呈现能够容纳的内容部分,而其余内容将丢失

Floater

· 无法定位,可在能够为其提供空间的任何位置呈现。不能设置偏移量或锚定 Floater。

· 不能将其大小设置为栏大小的几倍:默认情况下,Floater 的大小为一个栏大小。它有一个可设置为绝对像素值的 Width 属性,但是如果此值大于一个栏宽,则将其忽略并将浮动对象的大小设置为一个栏大小。可以通过设置正确的像素宽度,将其大小设置为小于一个栏大小,但不能相对于栏调整大小,因此"栏的 0.5 倍"不是 Floater 宽度的有效表达式。Floater 没有高度属性,因此无法设置其高度;其高度取决于内容。

· Floater 分页:如果指定宽度的内容超出了一个栏的高度,则浮动对象会断开并显示到下一栏、下一页中等等。

如果希望控制大小和定位,并且确信内容适合于指定的大小,那么 Figure 非常适合于放置独立内容。Floater 适合放置流动方式与主页内容类似但独立于主页内容的、具有更大流动自由度的内容。

LineBreak

LineBreak 导致在流内容中发生换行。

内容架构

不同流内容元素的数量是如此之多,因此了解某个元素可包含的子元素的类型是非常困难的。下面的关系图概述了流元素的包容规则。箭头表示可能存在的父/子关系。


untitled.JPG

自定义文本

TextDecorations

使用文本修饰,可以向文本应用下划线、上划线、基线和删除线效果

Typography

版式,用于控制文本的版式特征/变体(即小型大写字母或大型大写字母、上标和下标等)。

自学WPF--第八课FlowDocument FlowDocument类,用高级文档功能(如分页和列)承载流内容和设置流内格式。 需要添加引用,PresentationFramework(在 PresentationFramework.dll 中),不然就报错误~ 示例代码如下:           xmln 阅读详情

相关推荐

FlowDocument示例

主要展示了FlowDocument控件的使用方法,包括如何设置文字格式和结构

WPF FlowDocument结构详解

FLowDocument

qq_42068856的博客 3731

显示WPFFlowDocument(流文档)内容

显示WPFFlowDocument(流文档)内容,很管用的,有实例

WPF学习笔记-FlowDocument文档基础知识和基本操作

WPF中提供了FlowDocument类,用于高级文档功能(如分页和列)承载流内容和设置流内容格式,可以根据自己的需要进行在线编辑,是自定义显示样式,展示大段文章的绝佳利器。FlowDocument的默认值DataTemplateFlowDocument包含一个 FlowDocumentReader ,如果使用 作为 XAML 文件中的根元素,则用于FlowDocument显示文档

向往的是:佛祖堂前的鱼,静静听禅。 2919

WPF 打印 FlowDocument

WPF的打印功能,主要使用PrintDialog和FlowDocument。可以打印表格和指定文本内容

weixin_43152819的博客 1764

WPF使用FlowDocument实现图文混排

WPF使用FlowDocument实现图文混排 原文:WPF使用FlowDocument实现图文混排代码: <RichTextBox CaretBrush="#fff" Background="Transparent" BorderThickness...

weixin_30432007的博客 1249

WPF学习笔记之9:FlowDocument in WPF

下图演示最常与流内容一起使用的对象: Block 派生类: Paragraph Paragraph 通常用于将内容分组到一个段落中。Paragraph 的最简单且最常见的用途是创建文本段落。 ...

weixin_33932129的博客 394

How can I get a FlowDocument Hyperlink to launch browser and go to URL in a WPF app?

From: https://stackoverflow.com/questions/2288999/how-can-i-get-a-flowdocument-hyperlink-to-launch-browser-and-go-to-url-in-a-wpf   WPF中找指定类型控件列表 (UIElementExtensions.cs)   常用,还老忘 #region Activ

df398286232的专栏 614

MdXaml:将Markdown转换为WPF FlowDocument的强大工具

MdXaml:将Markdown转换为WPF FlowDocument的强大工具 项目介绍 MdXaml 是一个基于 Markdown.Xaml 的修改版本,专门用于将Markdown文本转换为WPFFlowDocumentFlowDocumentWPF中用于表示富文本内容的文档模型,能够支持复杂的文本布局和样式。通过MdXaml,开发者可以轻松地将Markdown格式的内容嵌入到WPF应用...

gitblog_00298的博客 1534

wpf分页打印打印(使用printDialog.PrintDocument打印flowDocument文档)第一版本

wpf分页打印打印(使用printDialog.PrintDocument打印flowDocument文档)第一版本。以后功能完善了更新第二版本。 使用此方法打印:printDialog.PrintDocument(((IDocumentPaginatorSource)flowDocument).DocumentPaginator, "PrintDocument打印");

WPF预览并打印FlowDocument

21 <Button Content="加载" HorizontalAlignment="Center" VerticalAlignment="Center" Width="88" Height="28" Click="Button_Click"></Button>在前面的文章中,介绍过通过FixedDocument进行预览并打印。但是有时候我们可能使用的是。

【微软MVP】zhaotianff的专栏 952

WPF使用FlowDocument加载文本并修改文本样式

软件在展示软件协议或者免责声明的时候,一般使用RichTextBox控件。RichTextBox 控件可以显示纯文本、Unicode 纯文本或 RTF 格式文件。有时候目标计算机上没有安装office或者为避免版权问题,可使用读取txt文件的方式替代引用word插件来加载文件。 这里使用高级文档功能FlowDocument来承载文本文件的内容和设置内容格式。 1、首先在生成目录下新建Discl...

dnazhd的博客 5614

回头来学习wpfFlowDocument

学习了一段时间的electron,其实是一个神奇的开发方式,让人神往。但其打印和ocx或是activeX方面还是让我不大放心去使用。毕竟当前首要任务还是window的应用开发。 于是重新学习wpfFlowDocument,竟然发现以下好东西。这回要好好学习了:) https://www.wpf-tutorial.com/zh/55/rich-text%E6%8E%A7%E4%BB%B6/wp...

weixin_30906185的博客 345

WPF 将 docx 的 Word 文件转换为 FlowDocument 显示

本文告诉大家如何将 docx 的 Word 文档WPF 中显示内容 本文源代码请看 ArtMalykhin/wpf-embedded-docx 在 Office 文档解析 文档格式和协议 咱可以了解到 Word 文档只是一个压缩文件里面的文件使用 xml 表示 因此需要做的是将 xml 转 FlowDocumentWPF 界面显示,大概做到的效果就是丢失很多样式和特效,然后文本形式...

lindexi 1473

WPF FlowDocument中的Block级元素

WPF Block级元素 Block 属性 BorderBrush BorderThickness 设置边框 BreakColumnBefore 获取或设置一个值,该值指示当元素参与使用了分栏的内容呈现时,是否自动在此元素之前插入一个分栏符。 BreakPageBefore 获取或设置一个值,该值指示是否自动在此元素之前插入一个分页符。 ClearFloaters 获取或设置某个 Floater 元素所包含的任何 Block 元素的重新定位方向。 FlowDirection 获取或设置 Block 元素中内

qq_42068856的博客 1399
上一篇: Publish from Window Live Writer
下一篇: DIV+CSS网站对SEO的影响
forlinux
博客等级 码龄20年 53粉丝 95原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值