chwroot 2017-06-13 13:38 采纳率: 0%
浏览 6776
已采纳

c#的Graphics.DrawString文字换行的问题

用Graphics.DrawString写文字,我想要的效果是,在一个宽度里显示文字,但文字的字数不定,可以实现自动换行及获取到这些文字的高度吗?
我用RectangleF试了,只是是固定的高度,如果文字太多,会显示不全。

  • 写回答

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

    用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn