我一直在使用等宽字体将表格渲染到图形对象上,并使用空格字符对齐我正在填充文本的文本列。
我被要求将字体更改为比例字体,并不奇怪,但列不再排列。
如果给出一个字符串,如
"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}这样的格式化程序一起使用,但这些格式化程序也无济于事。
如何让我的专栏排好?
答案 0 :(得分:2)
你不能让它像这样工作。在其列中绘制每个单独的字符串,传递列的Rectangle。每列的宽度取决于您。