图样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},也没有帮助。

我该怎么做才能使我的列排列整齐?

图样DrawString()&;比例字体的前导填充空格

你不能让它这样工作。在其列中绘制每个单独的字符串,传递该列的矩形。每列的宽度由您决定。