首先,How to measure width of character precisely?
已回答的问题对于这种情况并没有真正的帮助,所以这不是 that 的重复。
我有一个字符串。我使用 绘制graphics.DrawString
,但是当我需要在它之后放置另一个时,我需要知道前一个字符串的精确宽度。
为此,我使用 graphics.MeasureString 与:
StringFormat format = new StringFormat(StringFormat.GenericTypographic);
format.Alignment = StringAlignment.Center;
format.Trimming = StringTrimming.None;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
我已经尝试了许多其他功能,TextRendered.MeasureText
但是所有可能的参数组合都失败了。
上面提到的 MeasureString 组合最接近我需要的组合(它在大多数情况下都有效,特殊字符除外),但是使用 # 打破它之类的字符。宽度或短或长。
有没有办法获得 DrawString 函数产生的文本的精确大小?DrawString 如何计算绘图区域的大小?显然它必须是其他一些功能,因为大小总是不同的。
整个应用程序的源代码在这里https://gitorious.org/pidgeon/pidgeon-main/(我使用它的文件是https://gitorious.org/pidgeon/pidgeon-main/blobs/master/scrollback /SBABox.cs )