TextBlock换行

新建一个TextBlock作为最基础的一个控件,他所携带的功能相对于其他的控件要来的比较少,

比较值得关注的属性出了布局用的以外和数据绑定意外,就只剩下的Text属性来。

TextBlock的默认内容属性是Text。

对于换行来说,需要关注的也就是Text和Inline2个属性。

常见的TextBlock换行方法

1)转义字符换行

  在XAML的后台文件中加入代码

1 Me.TextBlock1.Text = "AAAAAAA " + vbCrLf + "BBBBBBBB"
1 this.TextBlock1.Text = "AAAAAAA/nBBBBBBBB";

  在XAML上写时

        <TextBlock Text="AAAAAAA&#x000A;BBBBBB"   Height="198" HorizontalAlignment="Left"                    Margin="30,27,0,0" Name="TextBlock1" VerticalAlignment="Top" Width="436" >                    </TextBlock>

这样就可以表示显示的表示换行了,

但是下面这种情况是无效的。

        <TextBlock  Height="198" HorizontalAlignment="Left"                    Margin="30,27,0,0" Name="TextBlock1" VerticalAlignment="Top" Width="436" >             AAAAAAA&#x000A;BBBBBB        </TextBlock>

在Text的内容里赋值时候,会按照XML去解析,所以对于XML的转义字符都会起到他们的作用,而上面这种情况,虽然这种写法是

是默认获取TextBlock的内容属性,但是在赋值过程中会经过Convert按照String来处理,字符串中解析到换行符时,默认转成了空格。

所以你看到的结果AAAAAAA和BBBBBB并没有被换行表示,只是中间隔了一个空格。

另外XML的转义字符

空格 (&#x0020;) Tab (&#x0009;) 回车 (&#x000D;)

换行 (&#x000A;)

2)设置属性,自动换行

因为TextBlock有TextWrapping属性的支持,根据控件宽度自动设置换行,没有特殊要求的时候,这基本上能满足需求

        <TextBlock  Height="49" HorizontalAlignment="Left"                    Margin="30,27,0,0" Name="TextBlock1" VerticalAlignment="Top" Width="60" TextWrapping="Wrap">             AAAAAAABBBBBB        </TextBlock>

3)使用InLines属性的LineBreak来换行

简单的来说就是,显示的XAML表示用

        <TextBlock  Height="49" HorizontalAlignment="Left"                    Margin="30,27,0,0" Name="TextBlock1" VerticalAlignment="Top" Width="60" TextWrapping="Wrap">             <Run>AAAAAA</Run>            <LineBreak/>            <Run>BBBBBB</Run>        </TextBlock>

后台代码添加

        TextBlock1.Inlines.Add(New Run("AAAAAA"))        TextBlock1.Inlines.Add(New LineBreak())        TextBlock1.Inlines.Add(New Run("BBBB"))

另外如果RUN里面有大量的文字表示,超过了TextBlock的Width时候,文字会被剪切掉,而不是自动换行,这点需要注意一下

本文来自A神降临的博客,原文地址:http://www.cnblogs.com/wuzhenyi/archive/2013/01/13/2858797.html

posted @ 2013-03-19 14:10  Lyghost  阅读(856)  评论(0编辑  收藏  举报