C# GDI如何绘制适合矩形的文本?

3
我们可以轻松地在一个矩形内绘制文本。

enter image description here

目前,我想在一个矩形内部绘制文本并使其适应矩形大小。

enter image description here

请帮忙。


“fit”这个词的确切含义是什么?你想让文本与矩形具有相同的高度和宽度吗? - Mong Zhu
是的,你明白了。文本字符串可以根据该矩形的高度和宽度进行拉伸。 - Paimiya
请发布您用于第一个版本的代码,以便人们可以向您展示如何将其适应第二个版本。 - perigon
1个回答

9

我认为最简单的方法是将图形输出缩放到目标矩形:

public static class GraphicsExtensions
{
    public static void DrawStringInside(this Graphics graphics, Rectangle rect, Font font, Brush brush, string text)
    {
        var textSize = graphics.MeasureString(text, font);
        var state = graphics.Save();
        graphics.TranslateTransform(rect.Left, rect.Top);
        graphics.ScaleTransform(rect.Width / textSize.Width, rect.Height / textSize.Height);
        graphics.DrawString(text, font, brush, PointF.Empty);
        graphics.Restore(state);
    }
}

你的GraphicsExtensions中还有什么其他好处可以分享吗? - Nissim
@Nissim,恐怕我只是为了回答这个问题而编写了这个类的有效代码。 - C.Evenhuis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接