用Graphics.DrawString写文字,我想要的效果是,在一个宽度里显示文字,但文字的字数不定,可以实现自动换行及获取到这些文字的高度吗?
我用RectangleF试了,只是是固定的高度,如果文字太多,会显示不全。
c#的Graphics.DrawString文字换行的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 战在春秋 2017-06-13 21:23关注
调用DrawString函数时,传入一个边框矩形参数,文字会在此范围内自动换行。
因为字数不定,所以此矩形的高度也应该动态变化。代码如下:
private void panel1_Paint(object sender, PaintEventArgs e) { string txtDescription = "这是一段非常长的字符串"; RectangleF descRect = new RectangleF(); using (Font useFont = new Font("SimSun", 28, FontStyle.Bold)) { descRect.Location = new Point(30, 105); descRect.Size = new Size(600, ((int)e.Graphics.MeasureString(txtDescription, useFont, 600, StringFormat.GenericTypographic).Height)); e.Graphics.DrawString(txtDescription, useFont, Brushes.Black, descRect); } }
MeasureString函数的用法可参考:
https://msdn.microsoft.com/en-us/library/system.drawing.graphics.measurestring(v=vs.110).aspx
用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 计组这些题应该咋做呀
- ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
- ¥15 让node服务器有自动加载文件的功能
- ¥15 jmeter脚本回放有的是对的有的是错的
- ¥15 r语言蛋白组学相关问题
- ¥15 Python时间序列如何拟合疏系数模型
- ¥15 求学软件的前人们指明方向🥺
- ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
- ¥20 双层网络上信息-疾病传播
- ¥50 paddlepaddle pinn