我目前正在使用DrawText在DirectWrite中绘制文本。
在我切换到DrawTextLayout时,我注意到别名字母的渲染并没有很好地完成。
有没有办法像在DrawText中那样将测量模式更改为DWRITE_MEASURING_MODE_GDI_CLASSIC
使用DrawText(和DWRITE_MEASURING_MODE_GDI_CLASSIC
)绘制顶部文本,使用DrawTextLayout绘制底部。
http://img5.fotos-hochladen.net/uploads/wwwwwwwww3b9zou6icp.jpg
http://img5.fotos-hochladen.net/uploads/xxxxxxxag8pdm5h2e.jpg
正如您所看到的,底部文字中的字符间距并不好。
如果我将DrawText的测量模式设置为DWRITE_MEASURING_MODE_NATURAL
,我会得到与使用TextLayout绘图完全相同的结果。所以问题是测量模式,我不知道如何改变。
答案 0 :(得分:1)
搞定了。
我完全没有看到这个功能:
DWriteFactory.CreateGdiCompatibleTextLayout
然而,当使用Delphi时,他们搞砸了这里所说的params:
https://msdn.microsoft.com/en-us/library/windows/desktop/dd368192%28v=vs.85%29.aspx
无论出于何种原因,他们都会像2013年报道的那样重新解决问题: