3
我想完成一個代碼,可以在屏幕上佈局文本。放置在否則爲空Windows窗體的Paint
事件處理程序下面的C#代碼是一個例子:GDI + MeasureString()不正確地修剪文本
string[] s = new string[] { "Sample text ", "to test", " this layout ", "algorithm" };
PointF[] pts = new PointF[s.Length];
PointF start = new PointF(10, 10);
StringFormat f = new StringFormat(StringFormat.GenericTypographic);
float x = start.X;
float y = start.Y;
for (int i = 0; i < pts.Length; i++)
{
pts[i] = new PointF(x, y);
SizeF sz = e.Graphics.MeasureString(s[i], Font, pts[i], f);
x += sz.Width;
e.Graphics.DrawString(s[i], Font, Brushes.Black, pts[i]);
}
它正常工作,除了前和s
陣列中的每個文本片段後修整空格。它應該像這樣顯示:
示例文本來測試這個佈局算法
但相反,它似乎是這樣的:
樣品文本到testthis layoutalgorithm
我有確認f.Trimming
屬性設置爲None
。我會猜想這會給字符串的測量增加尾隨和開放的空白,但它仍然會修剪它。有關如何使MeasureString
方法包含空白的任何想法?除此之外,完全可以處理。
完美!這正是我需要的。謝謝。 – user1476997