问题描述
我已经使用system.drawing.graphics(具有以下(简化的)代码段)成功测量了字符串:
var cachedFont = cachedFont = new System.Drawing.Font(pfc.Families[0],line.FontSize,fontStyle,GraphicsUnit.Pixel);
format.SetMeasurableCharacterRanges(new[] { new CharacterRange(0,line.Text.Length) });
var regions = graphics.Value.MeasureCharacterRanges(line.Text,cachedFont,new Rectangle(0,10000,0),format);
double result = 0;
for (var i = 0; i < regions.Length; i++)
{
var region = regions[i];
result += region.GetBounds(graphics.Value).Width;
region.dispose();
}
return result;
但是,我需要支持OpenType布局,根据语言脚本(例如阿拉伯语,泰语,CJK脚本等),一个特定字符可能具有多种语言变体
可以安全地假设使用系统的默认脚本测量字符串时,如果在字形替换中进行了测量,则测量结果不正确。
system.drawing.graphics是否支持不同的脚本?如何定义它们?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)