FlowDocument中的Inline级元素
Inline
是流文档中的行级元素。每一个Inline
相当于一行内容。没有特别指定的话,Inline不会换行。
比如一行文字就是一个Inline
。用Run
实现类来表示。
或者想要在一行中加上一个小图片,小图标。可以用InlineUIContainer
实现类来表示。
或者想把多个句子归为一类,就可以使用Span
实现类来表示。
无论他有怎样的实现类,他们都有一些共同的特点。
**都是行级元素。**因此把他们共同的特点提取出来,就是他们的共同父类——Inline
。
一、共同父类Inline
Inline
之间是链表结构。每个Inline
都是一个节点。因此,可以快速的找到上一个Inline
或下一个Inline
。
想要了解一个类具有哪些功能,能做哪些事情。最简单的方法就是看这个类有那些属性和方法。
属性
1) BaselineAlignment
获取或设置 Inline
元素的基线对齐方式。
用于指示Inline
的显示位置,比如说BaselineAlignment.Top
居上啊,BaselineAlignment.Bottom
居下啊,之类的。
2) FlowDirection
获取或设置一个值,该值指定 Inline 元素中内容流的相对方向。
这个属性只有两个枚举值,FlowDirection.LeftToRight
和FlowDirection.RightToLeft
表示内容是从左往右的还是从右往左的。
因为有些语言他是从右往左写的。所以有时需要做区分。
3) NextInline
获取与此元素对等的下一个 Inline
元素。
4) PreviousInline
获取与此元素对等的上一个 Inline
元素。
5) SiblingInlines
获取一个 InlineCollection
,它包含与此元素同级(对等)的 Inline
元素。
可以获取当前Inline
所在的集合。
6) TextDecorations
获取一个 TextDecorationCollection
,它包含要应用于此元素的文本修饰。
有4个枚举值,作用是在这个Inline
上画横线,
比如加下划线,取消线,上面划线之类的。
二、Inline的派生类
派生类都具有上述属性,然后包含少数独特的属性。
1. Run
Run
其实就是普通显示的文本。所以他只比Inline
多一个Text
属性。用于记录要显示的内容。
新增的属性:Text
获取或设置此文本 Run
的未格式化文本内容。
2. Span
Span
用于包含复数个Inline
。但同时也是行级元素。不会换行。
因此,比Inline
多了一个Inlines
属性。用于记录包含的Inline
。
新增的属性:Inlines
获取包含顶级 Inline
元素的 InlineCollection
,前者构成 Span
的内容。
3. InlineUIContainer
可以在流文档中放置控件。例如:Grid
,Button
等等,
多了一个Child
属性,用于记录包含的UIElement
。
新增的属性:Child
获取或设置由 InlineUIContainer
承载的 UIElement
。
4. LinkBreak
换行符。
三、总结
Inline
元素很简单
派生类只有很少几种。功能也很单一。
Run
用来显示文字。
Span
用来包含复数Inline
元素。
InlineUIContainer
用来在流文档放置控件。
LinkBreak
用来换行。
此外他们都有一些共同的功能,
一些文字装饰,一些访问相邻元素的功能。仅此而已。