图形.MeasureString方法在windows mobile上不准确



图形。MeasureString(string, Font)方法在windows mobile上不准确。这个问题有解决办法吗?

public static string GetSubString(Graphics graphic, Font font, 
                                                    string text, int availableWidth)
{
    string tempString = string.Empty;
    Size stringSize = graphic.MeasureString(text, font).ToSize();
    if (stringSize.Width < availableWidth)
    {
        return text;
    }
    for (int index = text.Length-1; index > 3; index--)
    {
        tempString = string.Format("{0}...", text.Substring(0, index));
        Size tempStringSize = graphic.MeasureString(tempString, font).ToSize();
        if (tempStringSize.Width < availableWidth)
        {
            return tempString;
        }
    }
}

方法返回不正确的大小,不匹配标签的宽度。

Graphics.MeasureString只有在使用Graphics.DrawString时才准确。

Windows.Forms.Label吗?然后,只有当UseCompatibleTextRendering属性为真时,它才使用Graphics.DrawString。否则,您应该使用TextRenderer.MeasureTextTextRenderer.DrawText方法。

最新更新