我一直在使用等宽字体将表格渲染到图形对象上,并对齐我一直使用空格字符填充文本的文本列。
我被要求将字体更改为比例字体,这并不奇怪,但列不再排列。
如果给定一个字符串,例如
"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} 之类的格式化程序一起使用,但这也无济于事。
我该怎么做才能让我的列对齐?