日期:2014-05-17 浏览次数:20829 次
这个东西算得上是最简单的文本呈现控件了,简单到什么程度呢?来,你也启动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