【发布时间】:2011-05-23 05:08:10
【问题描述】:
我一直在使用等宽字体将表格渲染到图形对象上,并对齐文本列,我一直在使用空格字符填充文本。
有人要求我将字体更改为比例字体,这并不奇怪,但列不再排列。
如果给定一个字符串比如
"Bill-of-Material Edits\r\n------------------------------\r\n200 510024 Door 24\" x 58\"\r\n 3 530058 Panel 58\" x 58\"\r\n";
我如何确保这 3 条线在上面一行的 200 值的一个位置下方正确排列,然后让 510024 直接位于 530058 上方?
这是我用来绘制字符串的代码:
var fnt = new Font(FontFamily.GenericSansSerif, 10, FontStyle.Regular, GraphicsUnit.Point);
StringFormat strFormat = new StringFormat(StringFormat.GenericTypographic);
strFormat.Alignment = StringAlignment.Near;
string text = "Bill-of-Material Edits\r\n------------------------------\r\n200 510024 Door 24\" x 58\"\r\n 3 530058 Panel 58\" x 58\"\r\n";
g.DrawString(text, fnt, Brushes.Black, new RectangleF(10f, 10f, 38.1062851f, 12.9231777f), strFormat);
我尝试将空格替换为其他字符,例如 unicode 控制字符 (0x0080),但无济于事。我还尝试将 string.Format() 与 {0,10} 之类的格式化程序一起使用,但也没有帮助。
我该怎么做才能让我的列对齐?
【问题讨论】:
标签: c# drawstring