一般用于显示文本的元素,我们最为经常用到的是该类的Text属性,其实显示文本有两种呈现方式,一个是设置内部文本Text,另一种就是在Inlines 集合中创建一个新的 Run 对象和LineBreak对象,我们称之为内联文本
TextBlock是Silverlight中的一个既有用又常用的控件。我们可以通过TextBlock呈现只读的文本,如
<TextBlock Text="露露非典神鱼地雷炸弹什么的"></TextBlock>
为了更好的控制呈现的文字,M$为该控件提供了很多属性,下面做一个介绍
1. FontFamily. 顾名思义,字体名称
<TextBlock Text="51MVC,justfor MVC" FontFamily="Courier New" Canvas.Top="100"Canvas.Left="100"></TextBlock>
<TextBlock Text="51MVC,justfor MVC" FontFamily="Times New Roman" Canvas.Top="110"Canvas.Left="100"></TextBlock>
<TextBlock Text="51MVC,justfor MVC" FontFamily="Verdana" Canvas.Top="120"Canvas.Left="100"></TextBlock>
注意,若需要在Silverlight中添加对中文字体的支持
2. FontSize. 文字大小,以像素为单位
<TextBlock Text="51MVC,justfor MVC" FontSize="10" Canvas.Top="100"Canvas.Left="100"></TextBlock>
<TextBlock Text="51MVC,justfor MVC" FontSize="20" Canvas.Top="110"Canvas.Left="100"></TextBlock>
<TextBlock Text="51MVC,justfor MVC" FontSize="30" Canvas.Top="120"Canvas.Left="100"></TextBlock>
3. FontStyle: 可设置两种值: Normal, Italic(斜体)
<TextBlock Text="51MVC,justfor MVC" FontStyle="Normal" FontSize="20"Canvas.Top="100" Canvas.Left="100"></TextBlock>
<TextBlock Text="51MVC,justfor MVC" FontStyle="Italic" FontSize="20" Canvas.Top="120" Canvas.Left="100"></TextBlock>
4. FontStetch. 按比例缩放文字,它提供一些枚举值如下表
这里要注意,这些值是否起作用还要取决于你选择的字体。
5. FontWeight. 文字的胖瘦。可设置为Thin, ExtraLight, Light, Normal, Medium, SemiBold, Bold, ExtraBold,Black, ExtraBlack.这些值是否起作用还要取决于你所选择的字体。
<TextBlock Text="51MVC,justfor MVC" FontWeight="Normal" Canvas.Top="100"Canvas.Left="100"></TextBlock>
<TextBlock Text="51MVC,justfor MVC" FontWeight="Bold" Canvas.Top="120"Canvas.Left="100"></TextBlock>
6. Foreground. 通过这个属性可以设置文字的前景色填充。不但可以使用颜色值,还可以通过设置solid color,gradient, image 及 video笔刷进行填充。还是那句话:很好,很强大
<TextBlock Text="51MVC,justfor MVC" Foreground="Purple" Canvas.Top="100"Canvas.Left="100"></TextBlock>
<TextBlock Text="51MVC,just forMVC" Canvas.Top="120" Canvas.Left="100">
<TextBlock.Foreground>
<LinearGradientBrush>
<GradientStop Color="#FF0000FF"Offset="0.0" />
<GradientStop Color="#FFEEEEEE"Offset="1.0" />
</LinearGradientBrush>
</TextBlock.Foreground>
</TextBlock>
7. TextDecorations. 对文字的修饰,当前Silverlight2只支持underline.
<TextBlock Text="51MVC,justfor MVC" TextDecorations="underline" Canvas.Top="100"Canvas.Left="100"></TextBlock>
8. Runs. 你可以在TextBlock中使用Run标签创建内联元素,每个Run都可以设置上面提到的属性。
<TextBlock Canvas.Top="100"Canvas.Left="100">
<Run TextDecorations="underline">51MVC,</Run>
<Run Foreground="Purple">just for MVC</Run>
</TextBlock>
另外这里还要介绍一下TextBlock中文字换行的技巧
当我们使用了一个固定宽度的TextBlock时,默认情况下文字会被截断而不自动换行,如下面的例子
<ContentControl Width="100"Canvas.Top="100" Canvas.Left="100">
<TextBlock>
露露神鱼非典地雷炸弹化妆品等都是好人
--年轻的F
</TextBlock>
</ContentControl>
我们可以通过设置TextWrapping属性的值为“Wrap”来强制其换行
<ContentControl Width="100"Canvas.Top="100" Canvas.Left="100">
<TextBlock TextWrapping="Wrap">
露露神鱼非典地雷炸弹化妆品等都是好人
--年轻的F
</TextBlock>
</ContentControl>
另外Silverlight还提供了LineBreak标签,它的作用相当于html中的<br />,直接看例子
<ContentControl Width="100"Canvas.Top="100" Canvas.Left="100">
<TextBlock>
露露神鱼非典
<LineBreak/>
地雷炸弹化妆品等
<LineBreak/>
都是好人
<LineBreak/>
--年轻的F
</TextBlock>
</ContentControl>
Run 标签内容成为 Text 属性的值,该类具有TextBlock类所具有的部分属性,比如FontFamily,FontSize,FontStretch,Foregroud等等;
LineBreak 新起一行,是换行标签
可以看到我们在Run标签和TextBlock标签都设置的前景色和显示的文字,可是效果如何那,效果:
所以我们确定如果TextBlock标签和TextBlock标签内定义Run标签的属性相重复时,两者的属性互不相干,但是Run设置的显示文本在TextBlock属性Text之后,要把程序运行起来,设计器直接看会是这样的错误结果,
再看下面的例子,我们对Run标签的一些属性进行了一些罗列:
实现的是这样的效果:
上面介绍到的是Inlines 集合的内联文本,这是说说TextBlock属性Text的一些特殊用法
案例代码:
它实现的效果是:
还比如。表示句号(。), 表示回车, 表示换行,当然你可以看出格式都差不多,可以更改最后一个字母或数字看看变成什么,比如
也可以设置文本对齐方式,TextAlignment属性可以甚至为:left,right,center;
如果你在textblock设置了fontfamily属性,并且名字写错的话,不会造成什么后果,系统会使用默认的字体 ,但是从隐藏文件获取字体的话还是获取到的是错误字体;