求助DrawString绘制文本的自动换行问题
遇到问题的函数如下Public Sub DrawString
(s As String,
font As System.Drawing.Font,
brush As System.Drawing.Brush,
layoutRectangle As System.Drawing.RectangleF,
format As System.Drawing.StringFormat)
System.Drawing.Graphics 的成员
摘要:
使用指定 System.Drawing.StringFormat 的格式化属性,
用指定的 System.Drawing.Brush 和 System.Drawing.Font
对象在指定的矩形绘制指定的文本字符串。
问题:
我使用此函数绘制某些文本时,其自动换行结果不太符合我的预期,比如说字符串
aaaa(b)01234567890 '这是未换行的情况
我通过调整layoutRectangle参数限制其绘制区域的宽度为所需宽度的一半后,预期的效果应该是
aaaa(b)01
234567890
也就是说我想要字符串从中间换行成两行
而实际结果是
aaaa(b)
012345678
90
该函数在括号后面强制换行了
请问如何解决 --------------------编程问答-------------------- 换行是按照标点符号来的。不是按照字母来的。
好比
你好么
换行成为
你好
么
而不是
你女
子么
也许你觉得后者才是你想的。
但是大多数老外,他们预期就是按照单词和标点拆分的。
如果你非要按照字母拆分。你得先自己测量好长度,切割好字母,加上换行符,再画上去。 --------------------编程问答-------------------- 回2楼
你说的情况我理解,比如apple肯定不能换行为
app
lp
但是我所要绘制的这些文本中的字母仅仅是独立的字母而已,我不需要它们组合起来表示一个单词或其它什么意思.所以我想强制关闭这个功能 --------------------编程问答--------------------
GDI+函数木有那么智能。 --------------------编程问答-------------------- 如果你是等宽字体,直接按照字符数切割。 --------------------编程问答-------------------- 有例子
补充:.NET技术 , VB.NET