图样DrawString()&;比例字体的前导填充空格
本文关键字:字体 空格 填充 DrawString amp 图样 | 更新日期: 2023-09-27 17:57:36
我一直在使用单空格字体将表格渲染到图形对象上,并使用空格字符对齐填充文本的文本列。
我被要求将字体更改为比例字体,这并不奇怪,但列不再排列。
如果给定诸如之类的字符串
"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))替换空格,但没有成功。我也试过使用字符串。格式化程序(),如{0,10},也没有帮助。
我该怎么做才能使我的列排列整齐?
你不能让它这样工作。在其列中绘制每个单独的字符串,传递该列的矩形。每列的宽度由您决定。