博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF学习拾遗(二)TextBlock换行
阅读量:6458 次
发布时间:2019-06-23

本文共 1179 字,大约阅读时间需要 3 分钟。

原文:

下午在帮组里的同事解决一个小问题,为了以后方便,把就把它收集一下吧。

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

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

TextBlock的默认内容属性是Text。

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

常见的TextBlock换行方法

1)转义字符换行

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

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

  在XAML上写时

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

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

AAAAAAA
BBBBBB

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

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

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

另外XML的转义字符

空格 ( ) 

Tab (	) 
回车 (
) 

换行 (
)

 2)设置属性,自动换行

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

AAAAAAABBBBBB

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

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

AAAAAA
BBBBBB

后台代码添加

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

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

 

转载地址:http://efszo.baihongyu.com/

你可能感兴趣的文章
AJAX POST&跨域 解决方案 - CORS
查看>>
关于最小生成树中的kruskal算法中判断两个点是否在同一个连通分量的方法总结...
查看>>
开篇,博客的申请理由
查看>>
Servlet 技术全总结 (已完成,不定期增加内容)
查看>>
[JSOI2008]星球大战starwar BZOJ1015
查看>>
CountDownLatch与thread-join()的区别
查看>>
centos 7 部署LDAP服务
查看>>
揭秘马云帝国内幕:马云的野心有多大
查看>>
iOS项目分层
查看>>
UML关系图
查看>>
一个action读取另一个action里的session
查看>>
IntelliJ IDEA 注册码
查看>>
linux 上面配置apache2的虚拟目录
查看>>
String字符串的截取
查看>>
DynamoDB Local for Desktop Development
查看>>
laravel 使用QQ邮箱发送邮件
查看>>
用javascript验证哥德巴赫猜想
查看>>
Shell编程-环境变量配置文件
查看>>
[Unity3d]DrawCall优化手记
查看>>
SQL Serever学习7——数据表2
查看>>