如何为GDI +获取特定宽度的字符串?

时间:2013-09-09 10:21:55

标签: c# gdi+

如果我有一个字符串,我想获得一个特定宽度的字符串的一部分,我怎么能得到它? 假设我的

string MyStringIs="MyBasketItems1, MyBasketItems1, MyBasketItems1, "\n"MyBasketItems4";

我想获得这个特定宽度字符串的一部分,以便在面板上绘制我该怎么做?

1 个答案:

答案 0 :(得分:3)

您可以尝试使用此功能(几乎未经测试)

public string GetMaxPixelSubstring(string input, int maxLength, Graphics graph, Font font)
{
     string part = "";
     foreach (char oneChar in input.ToCharArray())
     {
        string temp = part + oneChar;

        if (graph.MeasureString(temp, font).Width > maxLength) 
           return part;
        else
           part = temp;
     }
     return input;
}

这个想法是逐个字符地循环原始输入字符串,将它们添加到部分字符串并使用特定字体测量像素中的部分字符串长度。

例如,在表单按钮单击事件

中调用上述函数
string MyStringIs="MyBasketItems1, MyBasketItems1, MyBasketItems1, MyBasketItems4";
string result = GetSubstrings(MyStringIs, 220, this.CreateGraphics(), new Font("Arial", 12f));
MessageBox.Show(result);

显示“MyBasketItems1,MyBasketIt”