c# - Cambria Math 大的顶部和底部边距

标签 c# winforms fonts

我想在 winforms 文本框中显示一些数学表达式。所以我认为“Cambria Math”字体是一个不错的选择,但由于字体的顶部和底部边距较高,文本看起来很奇怪。一开始我以为我犯了一个错误,但根据this question ,这是字体的正确行为。

Screenshot of the textbox

为什么 Cambria Math 有这么大的边距值,我怎样才能像 Word 2010 一样在文本框中正确显示我的字符串?

(请注意,我对排版知之甚少;)

编辑:我必须将文本框做得那么高,否则插入符号将不可见。文本框的字体大小设置为8.25pt

最佳答案

Cambria Math 使用 Microsoft 的数学 OpenType 扩展。

Word 2007 及更高版本理解这些并以合理的间距显示文本。

但是,notepad 和 Word 2000 显示的文本与 winforms 一样,间距很大。我猜字体默认有这么大的空间,因为有些字符(比如 U+2320,上半部分)比字母数字大得多。

如果您将 Cambria Math 与不理解数学扩展的字体引擎(例如 winforms 使用的引擎)一起使用,您将获得大间距。

如果您要显示简单的表达式,您不妨使用 Cambria。

关于c# - Cambria Math 大的顶部和底部边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8624229/

相关文章:

c# - 多个运行时过滤器的动态 Linq 查询

.net - 如何在 vb.net 中创建辅助消息循环?

Java:获取具有特定高度(以像素为单位)的字体

c# - windows phone中如何在页面之间传递多个数据

c# - 获得焦点并选择文本时文本左对齐

c# - 如何在具有值类型约束的泛型声明类型之间进行复制

c# - 弹出窗口 web 浏览器控件

c++ - MS Sans Serif 在 XP 中无法显示 Unicode 文本,但在 Win7 中可以

fonts - 为什么在Microsoft Word 中每次切换到日文输入时,字体都会自动更改为Yu Mincho?

c# - 在 Blazor Server 中使用 InputFile 时如何获取完整文件路径?