大家好,欢迎来到IT知识分享网。
TextBlock文本块
虽说一图胜千言,但如果你有文采的话,写了不少的歌词诗赋,总是希望把它展示出来,这时TextBlock控件就会发挥它的作用。
TextBlock从字面看就是文本块,这个控件最主要的功能就是显示文本。它只能显示文本,不能被编辑,所以又称为静态文本。虽然不能编辑内容,但是TextBlock可以使用丰富的印刷级的格式控制标记显示出专业的排版效果,从而使你的作品看起来赏心悦目。
TextBlock之所以能排版出漂亮的效果,是因为它对文本格式的控制不仅包括对文本块的整体格式控制,还包括对局部文本的格式控制,它的内容属性是TextBlock.Inlines(印刷中的“行”),也就是说,一个文本块中包含了许多“行”,我们的设置可以针对“行”来进行。同时TextBlock也保留了一个Text属性,当显示一个简单的字符串时,我们可以使用这个属性。
对局部文本的格式控制,TextBlock用的是所谓的“内联元素Inline Element”,也就是说,它们的控制对象是一行,甚至是一行中的某些字符。通过“内联元素”,TextBlock控件支持设置部分文本的样式。
好了,说了这么多,我们具体看看,怎么样通过设置TextBlock的属性,为我们做出专业的排版效果。
首先,是文本块的整体设置,包括以下属性:
(1)Foreground 前景色,即设置文字的颜色,文本块中单独设置的行或字符不受影响。
(2)Background 背景色,可以设置背景色,甚至可以用图片设置背景。例如,以苏轼画像为背景:
<TextBlock.Background>
<ImageBrush ImageSource=”/苏轼2.jpeg” TileMode=”None” />
</TextBlock.Background>
(3)Text 文本,即文本块显示的内容
(4)FontSize 字号,即字体大小
(5)FontFamily 字库,或字体,如宋体、黑体等
(6)FontWeight 字重,
(7)FontStyle (Italic) 字体样式,如斜体字等
(8)TextWrapping (Wrap) 自动换行设置,它可以有NoWrap(不换行。缺省值)、Wrap(换行)、WrapWithOverflow(换行但允许超出文本块的宽度)。WrapWithOverflow在换行的算法没办法确定如何正确换行(比如某个单词超长、换不换都超出宽度)时,允许行超出块的宽度。
(9)TextTrimming (CharacterEllipsis, WordEllipsis, None)当TextWrapping 属性设置为NoWrap(不换行。缺省值)时,窗口缩小时右侧文本的修剪方式,分别是:截断到任意字符(最后一个字符后显示…)、截断到某个单词(一个完整单词后显示…)、不截断。
(10)TextAlignment (center, justify, left, right) 文本对齐方式,有居中对齐、分散对齐、左对齐、右对齐。
对了,如果要换行,要用到<LineBreak/>元素。
其次,是局部文本的格式设置,包括以下元素:
(1)Run 设置一个新行,内容包含普通文本,在Run元素中可以使用上面的部分属性,如ForeGround、FontSize等,对文本行中的部分文本单独进行格式设置。如:
<Run Foreground=”Maroon” FontFamily=”Courier New” FontSize=”24″>hello</Run>
(2)TextDecorations文本修饰属性内联元素,可用于Run元素中,其值有:None无修饰、OverLine上划线、 Strikethrough删除线、 Baseline基线、Underline下划线。
(3)Bold、ltalic 和Underline应用粗体、斜体以及下划线格式,可以单独使用修饰文本。
最后,给个例子应用一下
<Grid>
<TextBlock Background=”BlanchedAlmond”
HorizontalAlignment=”Center”
Margin=”0″ Foreground=”Purple”
FontSize=”22″ TextAlignment=”Left”>
<TextBlock.Inlines>
<Run Foreground=”BlueViolet” FontSize=”30″
xml:space=”preserve” >
江城子·密州出猎</Run>
<LineBreak/>
<LineBreak/>
<Run xml:space=”preserve”>
【作者】苏轼
</Run>
<LineBreak/>
<Run xml:space=”preserve”>
【朝代】宋
</Run>
<LineBreak/>
<LineBreak/>
<Underline> 老夫聊发少年狂,</Underline>
<Run Foreground=”Red” FontSize=”24″ >
左牵黄,右擎苍,
</Run>
锦帽貂裘 ,千骑卷平冈。
<LineBreak/>
<Bold>
为报倾城随太守,亲射虎,看孙郎。
</Bold>
<LineBreak/>
<Run Foreground=”White” FontFamily=”微软雅黑”
FontStyle=”Italic” FontSize=”40″
TextDecorations=”Strikethrough”>
酒酣胸胆尚开张,
</Run>鬓微霜,又何妨!
<LineBreak/>
持节云中,何日遣冯唐?
<LineBreak/>
会挽雕弓如满月,西北望,射天狼。
</TextBlock.Inlines>
</TextBlock>
</Grid>
效果如何,你自己拷贝到Xaml文件中,运行一下,就知道了。
若对你有帮助的话,请帮忙关注、点赞、转发!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/88216.html