日期:2014-05-17 浏览次数:20977 次
这个东西算得上是最简单的文本呈现控件了,简单到什么程度呢?来,你也启动VS,新建一个项目,一边看一边动手试试吧。
要在TextBlock中显示简单文本,设置Text属性即可,如:
<TextBlock Text="猪,你今天吃早餐了没?" />
然后你运行一下,嗯,看到文本了吧。
这时候我想起来,这字体太小了,看不清楚,咋办,能不能修改字体大小,当然,看:
<TextBlock Text="猪,你今天吃早餐了没?" FontSize="32" />
修改FontSize后,你会看到字体大小有所变化了。那么,你肯定会想到,那能不能加粗?来,再看看:
<TextBlock Text="猪,你今天吃早餐了没?" FontSize="32" FontWeight="Bold" />
现在是不是看到明显的变化了?
那么,这个时候你可能又有新问题了,除了能够显示我们平时看到字符外,能不能显示其它字符。当然可以,看看下面的例子:
先打开“字符映射表”,用了Windows这么多年,不要问我怎么打开。
字体选择Segoe UI Symbol,记住了,不要选错,然后在符号列表中,拖动滚动条往下,找到你要的符号,在窗口的左下方可以看到编码。

然后,回到VS,输入以下XAML:
<TextBlock Text="" FontSize="65" FontFamily="Segoe UI Symbol" />
代码显示不出来,我只好截图了。

使用这些符号的时候要注意:
一,字体必须为Segoe UI Symbol;
二,要注意转义,输入字符时要以 &#x 开头,这是XML/HTML转义,比如,我们在字符映射表中看到某字符的编码为 U+ E109,在XAML中我们要替换为 
看清楚,后面还有一个英文的分号(;)。
当你运行应用程序时,你会看到以下效果。

这种符号不错吧,以后做图标就不用自己动手画了,直接用这些符号就行了,Windows Vista以后都能用这种字体。
如果你不会写这个转义,可以去抄,在哪呢?你看看你的“解决方案管理器”,看看下面图中标注的文件。

哈哈,我就说到这里,你一定会想到怎么去抄了,我相信你的悟性是很高的。
上面我们都看到TextBlock显示的简单文本,那么,能复杂一点吗?能。
对于有WPF基础的朋友,我这里提一下,到Windows.UI.Xaml.Documents命名空间下你就看到答案了。
在TextBlock中能换行吗?还记得HTML中的br元素吗?呵呵,XAML中也有,不信你看:
<TextBlock FontSize="32">
第一行文本
<LineBreak />
第二行文本
<LineBreak />
第三行文本
</TextBlock>
效果嘛,自己运行一下看看。
下面又有难题了,能不能达到这种效果:我在里面显示“我们都是好孩子。”,我希望好孩子三个字加粗显示。答案肯定的,来,动手做做。
<TextBlock FontSize="32">
我们都是<Bold>好孩子</Bold>
</TextBlock>
这个效果不错吧。
再来看一个,我在里面显示“快乐编程,编程快乐”,我想把编程二字用绿色突出显示。
<TextBlock FontSize="32">
<Span Foreground="LightGreen">编程</Span>快乐,
快乐<Span Foreground="LightGreen">编程</Span>。
</TextBlock>
如果运行程序,就会看到下面的效果。

咱们再来一个综合一点的,
<TextBlock FontSize="32">
我来自<Run FontSize="50" FontWeight="Black">何方</Run>,
像一颗<Italic FontSize="45" Foreground="Yellow">尘土</Italic>。
</TextBlock>
看看是什么样的结果?

哈哈,这个如何?
其实这里面,Run和Span元素区别不是非常大。
相对而言,RichTextBlock要稍为强大,看看下面这个例子。
<RichTextBlock>
<Paragraph>
<Span FontSize="40" FontWeight="Bold">造人</Span>li
<LineBreak/>
<Run FontSize="22">作者:张爱玲</Run>
</Paragraph>
<Paragraph TextIndent="36" FontSize="20">
我一向是对于年纪大一点的人感到亲切,对于和自己差不多岁数的人稍微有点看不起,对于小孩则是尊重与恐惧,完全敬而远之。倒不是因为“后生可畏”。多半他们长大成人之后也都是很平凡的,还不如我们这一代也说不定。
</Paragraph>
<Paragraph TextIndent="36" FontSize="20">
小孩是从生命的泉源里分出来的一点新的力量,所以可敬,可怖。
</Parag