如何获取GDI+的特定宽度的字符串
本文关键字:字符串 GDI+ 何获取 获取 | 更新日期: 2023-09-27 18:30:36
如果我有一个字符串,我想获取特定宽度的字符串的一部分,我该如何获得它?假设我的
string MyStringIs="MyBasketItems1, MyBasketItems1, MyBasketItems1, "'n"MyBasketItems4";
我想让这个特定宽度的字符串的一部分在面板上绘制,我怎样才能得到它?
你可以试试这个函数(几乎没有测试)
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"