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

本文共 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://bcvyo.baihongyu.com/

你可能感兴趣的文章
14、Cocos2dx 3.0三,找一个小游戏开发Scene and Layer:游戏梦想
查看>>
cocos2d-x3.x屏蔽遮罩层屏蔽触摸button
查看>>
实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求
查看>>
安德鲁斯----多媒体编程
查看>>
ZOJ 1203 Swordfish 旗鱼 最小生成树,Kruskal算法
查看>>
swift版的元组
查看>>
MYSQL查询今天昨天本周本月等的数据
查看>>
深度学习课程部分资料整理
查看>>
win10系统调用架构分析
查看>>
<LeetCode OJ> 101. Symmetric Tree
查看>>
PCL系列——怎样逐渐地配准一对点云
查看>>
gtk+3.0的环境配置及基于gtk+3.0的python简单样例
查看>>
侯捷STL学习(12)--STL相关内容hash+tuple
查看>>
Ubuntu 16.04安装UML工具StarUML 2
查看>>
OpenResty 技术图谱skill-map
查看>>
WinSCP怎么导入filezilla中的站点?
查看>>
【Java数据结构学习笔记之三】Java数据结构与算法之队列(Queue)实现
查看>>
清除远程桌面访问痕迹
查看>>
python脚本
查看>>
Oracle:SQL语句--对表的操作——修改表名
查看>>