c# - 测量字符串的实际高度
问题描述
如何找到要渲染的字符串的实际高度(和宽度)?我需要能够绘制 x mm 高的文本。
如果我能得到实际的文本高度,应该很容易计算所需的字体大小。
例如。从字体大小开始,测量渲染文本并计算新字体大小(new_font_size = old_font_size * Wanted_height / measure_height)
我尝试过使用Graphics.MeasureString
,但其中包括一些对于大尺寸可能会变得相当大的填充。
解决方案
似乎可以将文本添加到 GraphicsPath 并从中获取大小:
public static SizeF GetSize(String text, Font font, StringFormat format)
{
GraphicsPath path = new GraphicsPath();
path.AddString(text, font.FontFamily, (int)font.Style, font.SizeInPoints, new PointF(0, 0), format);
return path.GetBounds().Size;
}
推荐阅读
- javascript - javascript 将对象数组提取到 php 等变量,c# 将对象数组提取到 php 等变量
- php - 在单一和可变产品的“附加信息区域”上显示 SKU
- java - 将数组字符串转换为数组列表而不将其嵌套在Java中
- javascript - Apple Pay 支付请求 API iframe
- python - 如何在 Python 中合并完全不同的数据帧 UP-SIDE
- ios - SwiftUI 布局 - VStack 中的 NavigationView - 填充高度
- c# - 如何从 UWP 应用中的 XmlDocument 的内容设置 Image 组件的 SvgImageSource 属性?
- amazon-web-services - Ec2 实例停止并重新启动时,该 url 无法访问该实例
- python - Windows 不支持将 Python 包安装到 virtualenv 中 | 适用于 Windows 10 的 TensorFlow 和 Keras
- visual-studio-code - WSL 与 atom ide 的集成