关于计算文字显示占用画面大小(System.Drawing.Graphics.MeasureString)

关于计算文字显示占用画面大小(System.Drawing.Graphics.MeasureString)最近遇到了一个需要手动为显示文字换行的场合,网上转了一圈,最后形成了下面的代码:varfont=newFont(“微软雅黑”,9F);varmaxTextWidth=panel_detail.Width-22-DETAIL_BASE_INDENT-DETAIL_INDENT*level-6;vargraphic=pa…

最近遇到了一个需要手动为显示文字换行的场合,网上转了一圈,最后形成了下面的代码:

    var font = new Font("微软雅黑", 9F);
    var maxTextWidth = panel_detail.Width - 22 - DETAIL_BASE_INDENT - DETAIL_INDENT * level - 6;
    var graphic = panel_detail.CreateGraphics();
    var textRemained = text;
    while (textRemained.Length > 0)
    {
        int characters, lines;
        graphic.MeasureString(textRemained, font,
            new SizeF(Convert.ToSingle(maxTextWidth), Convert.ToSingle(DETAIL_HEIGHT)), StringFormat.GenericTypographic,
            out characters, out lines);
        var currentTextLine = textRemained.Substring(0, characters);
        textRemained = textRemained.Substring(characters);

// TODO: 使用font作为参数,将currentTextLine中的文字展示出来 }

需注意StringFormat一项最好不要设成new StringFormat(),否则得到的计算结果和用Label展示时的大小差距很大。

转载于:https://www.cnblogs.com/Rabbitism/p/6066286.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/36396.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注