原文:WPF笔记(2.7 文字布局)——Layout

这一节介绍的是文字布局的几个控件:

1.TextBlock      最基本的文字控件
可以配置5个Font属性。
TextWraping属性,"Wrap"是换行,NoWrap是不换行(原书有误,在此更正)。
TextBlock控件内可以放置很多控件,不光是文字。

WPF笔记(2.7 文字布局)——Layout-LMLPHP<TextBlock TextWraping="Wrap">
WPF笔记(2.7 文字布局)——Layout-LMLPHP    <Button>Split</Button>
WPF笔记(2.7 文字布局)——Layout-LMLPHP    <CheckBox>across</CheckBox>
WPF笔记(2.7 文字布局)——Layout-LMLPHP    <TextBox>multiple</TextBox>
WPF笔记(2.7 文字布局)——Layout-LMLPHP    lines
WPF笔记(2.7 文字布局)——Layout-LMLPHP</TextBlock>

AccessText,Bold,Hyperlink,Italic和Underline望文生义,Subscript和Superscript已经废弃。(AccessText没有期望的效果)

WPF笔记(2.7 文字布局)——Layout-LMLPHP        <TextBlock FontSize="18">
WPF笔记(2.7 文字布局)——Layout-LMLPHP            <AccessText>T</AccessText>his <Italic>is</Italic> <Bold>rather</Bold>
WPF笔记(2.7 文字布局)——Layout-LMLPHP            <Underline>messy</Underline>. <Hyperlink>www.example.com</Hyperlink>
WPF笔记(2.7 文字布局)——Layout-LMLPHP        </TextBlock>
WPF笔记(2.7 文字布局)——Layout-LMLPHP

2. Text and Whitespace
这里Whitespace指的是 回车符,就是说,TextBlock是将其忽略的,只有在TextBlock中设置了xml:space="preserve" ,才会表现出来这个回车换行:

WPF笔记(2.7 文字布局)——Layout-LMLPHP        <TextBlock FontSize="18" xml:space="preserve">
WPF笔记(2.7 文字布局)——Layout-LMLPHP            <AccessText>T</AccessText>his <Italic>is</Italic> <Bold>rather</Bold>
WPF笔记(2.7 文字布局)——Layout-LMLPHP            <Underline>messy</Underline>. <Hyperlink>www.example.com</Hyperlink>
WPF笔记(2.7 文字布局)——Layout-LMLPHP        </TextBlock>WPF笔记(2.7 文字布局)——Layout-LMLPHP

当然,一般不建议主动这么做,除非你是直接copy一大段文章过来。
你或者可以把xml:space="preserve"只设置在 <Bold>rather</Bold>上,也能达到同样的效果。

设置TextAlignment="Left"/Right/Center/Justify属性,可以控制TextBlock中文本对齐方式,Justify是居中对齐。

3.TextFlow 功能比TextBlock强大,提供了5个内嵌的容器标签:
   1)Paragraph
   2)List
   3)Table
   4)Floater
   5)Figure
   粗粗看了一遍这5个容器,没什么意思,无非是Word中的5种布局方案的迁移,而且,微软白皮书说,TextBlock的效率比TextFlow高很多,尽量必要用后者。

05-06 03:37