【发布时间】:2017-06-19 16:58:19
【问题描述】:
在 GDI 中获取我会调用 GetCharABCWidths 的字符的 ABC 宽度(左方位、右方位等)。
我如何使用 SharpDX 或 DirectWrite 实现相同的测量值,我是否应该期望这与 GDI 对于相同字符的值匹配?
到目前为止我做了什么?因缺少 Direct* 和 SharpDX 的文档而迷失方向。
【问题讨论】:
-
GetDesignGlyphMetrics,也许?我对 DirectWrite 不是很熟悉,但即使在 GDI 中,我也很少需要GetCharABCWidths。通常,您真正需要知道的是特定字符串的尺寸(即使该字符串仅包含一个字符),因此您只需调用DrawString和DT_CALCRECT或其他什么。我确定 DirectWrite 有类似的“MeasureText”功能。 -
是的@CodyGray,你会认为这将是 GDI 之后的小菜一碟。 GetDesignGlyphMetrics 返回一个结构,
Obtains ideal (resolution-independent) glyph metrics in font design units与好的 ole GDI 不太一样。事实上,我需要 A 和 B 宽度来满足一些准确的对齐需求。 -
不,我真的不会。就我而言,GDI 是小菜一碟。这也是我可以在我的机器上获得的最清晰的文本渲染,并且是最快的。就我而言,从那以后的一切都是一种回归,至少对于文本输出和其他非图形密集型绘图任务而言。
-
我开始意识到这一点。我的应用程序将作为一项服务运行,它引导我使用 DirectWrite 和 WARP。我只需要继续努力。出于兴趣,我是否应该期望 ABC 宽度在 GDI 和 DirectWrite 中匹配?
标签: c# sharpdx directwrite