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

本文关键字:字符串 GDI+ 何获取 获取 | 更新日期: 2023-09-27 18:30:36

如果我有一个字符串,我想获取特定宽度的字符串的一部分,我该如何获得它?假设我的

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

我想让这个特定宽度的字符串的一部分在面板上绘制,我怎样才能得到它?

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

你可以试试这个函数(几乎没有测试)

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"