c# - 在c#中绘制文本时的字体高度
问题描述
绘制字符串时,我通过调用myGraphics.MeasureString(myString, myFont);
. 实验我发现这个方法总是为任何字符串或某种字体的单个字符返回相同的高度。所以这个值似乎是字体的一个特征,而不是字符串的一个特征。但是字体类中没有提供此信息的属性或方法。字体类有几个返回高度信息的属性/方法,但它们都没有给出与字符串测量相同的值。例子:
using (Graphics myGraphicsTemp = CreateGraphics())
{
Font myFont = new Font("Microsoft Sans Serif", 9F);
var size = myFont.Size; // 9
var height = myFont.Height; // 14
var lineSpacing = myFont.GetHeight(); // 13.5820293
var measuredHeight = myGraphicsTemp.MeasureString("1", myFont).Height; // 15.0820284
}
我需要在我的代码中的几个位置由字符串测量方法给出的高度。所以我measuredHeight
通过测量一个任意选择的字符来设置一个变量(就像在我的例子中一样)。这行得通,但我认为这有一种“强烈的气味”。有没有更好的方法来找到所需的值?我发现了以下问题(字体的宽度和高度),但它没有回答我的问题。
解决方案
推荐阅读
- javascript - 我是否在下面的 javascript 代码中正确实现了二进制搜索的概念
- angularjs - 使用Express从angularJS应用程序向nodeJS服务器发出带有参数和一些数据的put请求
- python - 使用 Python 下载许多图像的最佳策略?
- amazon-web-services - AWS Amplify 克隆存储库错误:“SSR 应用程序不支持基本身份验证。”
- twilio - Twilio 任务路由器 - 如何将分配的任务转移给其他工作人员?
- typescript - 类型“typeof videojs”上不存在属性“扩展”
- logging - Grafana:如何区分提醒和警报
- node.js - 根域上的前端(Apache)子域上的后端(节点)-> Websocket 连接失败
- python - Python:保留德语特殊字符并解码\x84的字符串编码
- ios - WatchOS 并发症