c# - 确定位图大小以保存文本字符串

标签 c# winforms graphics bitmap drawstring

我想做的是使用 DrawString() 方法将字符串绘制到位图中。为此,我需要创建一个位图并从该位图中获取一个 Graphics 对象,然后对该 Graphics 对象调用 DrawString()。

问题是,当我创建初始位图时,我如何提前知道制作位图的像素宽和长是多少?

我知道这与 MeasureString() 有关,但为了使用 MeasureString(),我需要从位图中获取 Graphics 对象。在我创建位图之前我无法得到它,在我知道大小之前我无法做到这一点。这似乎是一个循环悖论!

谁能帮我解决这个问题?

最佳答案

您可以创建一个小的静态位图来测量

private static Bitmap measureBmp = new Bitmap(1, 1);

然后你照常测量

using (var measureGraphics = Graphics.FromImage(measureBmp))
{
    var stringSize = measureGraphics.MeasureString("measureString", this.Font);
}

图片大小不影响测量

关于c# - 确定位图大小以保存文本字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4317950/

相关文章:

C# 和可空标志/注释?

c# - 如何更改代码以检索 datagridview 中的特定列?

c# - Form1_KeyDown 不工作

c# - 在标签中显示数学

c# - 从异步方法返回 IEnumerable<T> 哪里出错了?

c# - ASP.Net MVC 中长时间运行的进程

java - 球离开屏幕

java - 在java中绘制一个点

java - 如何使用 Graphics 将 Java 数组打印成整齐的列?

c# - 对于生命周期较短的对象,是否需要取消订阅事件?