gpt4 book ai didi

wpf - 如何在 WPF 中找到任意字形的确切大小?

转载 作者:行者123 更新时间:2023-12-02 22:32:40 26 4
gpt4 key购买 nike

我需要找到任意字体中每个字符的准确大小。

使用 GlyphTypeface 加载字体类。

问题是我只能使用 AdvanceWidths 属性直接访问字形的宽度,但每个字符的高度都相同,并且设置为 Height属性(property)。

似乎可以使用 Baseline、Height、XHeight、BottomSideBearings 和 TopSideBearings 属性的组合来计算单个字符的高度,但没有关于所有这些值的真正含义的文档。整个字体的基线、高度和 XHeight 值是恒定的,关于其他两个 - BottomSideBearings 和 TopSideBearings - 我找不到它们的含义。

一般来说,是否有任何信息可以计算任意字体的单个字形的大小? (只有“TTF”文件,或任何其他可以从中加载的 GlyphTypeface)。

最佳答案

经过一些研究,找到了计算字符大小的正确方法:

var typeface = new GlyphTypeface(new Uri(fontpath));
var character = 'W';
var charIndex = typeface.CharacterToGlyphMap[character];

var width = typeface.AdvanceWidths[charIndex];
var height = typeface.Height - typeface.TopSideBearings[charIndex]
- typeface.BottomSideBearings[charIndex];

这将给出以 em 为单位的字符大小 - 要找到实际大小,需要将其乘以字体大小。

关于wpf - 如何在 WPF 中找到任意字形的确切大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11971547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com