相关疑难解决方法(0)

如何精确测量弦的宽度?

首先,How to measure width of character precisely?回答的问题对于这种情况并没有真正帮助,所以这不是重复的.

我有一个字符串.我绘制使用graphics.DrawString,但是当我需要在它之后添加另一个时,我需要知道前一个字符串的精确宽度.

为此,我使用graphics.MeasureString:

StringFormat format = new StringFormat(StringFormat.GenericTypographic);
format.Alignment = StringAlignment.Center;
format.Trimming = StringTrimming.None;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
Run Code Online (Sandbox Code Playgroud)

我已经尝试了许多其他功能,就像TextRendered.MeasureText所有功能都失败一样,所有可能的参数组合.

MeasureString的上述组合最接近我的需要(它在大多数情况下都适用,特殊字符除外),但是使用像#破坏它这样的字符.宽度更短或更长.

有没有办法获得DrawString函数生成的文本的精确大小?DrawString如何计算绘图区域的大小?它必须显然是一些其他功能,因为尺寸总是不同的.

整个应用程序的源代码在这里https://gitorious.org/pidgeon/pidgeon-main/ (我使用它的文件,是https://gitorious.org/pidgeon/pidgeon-main/blobs/master/scrollback /SBABox.cs)

c# gdi+ winforms

6
推荐指数
2
解决办法
8062
查看次数

C#单字体字符大小?

这与字符串的大小无关.

我指定了绘制字符串的字体.现在我需要1个字符的精确宽度(以像素为单位).我只允许具有静态字符宽度的字体(W和i在绘制时具有相同的宽度).如果我使用大小为10的"Consolas",我的估计宽度为7.75f.我可以直接以某种方式检索此信息吗?

绘图时我不需要这些信息,但是当我想设置光标位置等时,我不知道光标下面有什么文字.

编辑: MeasureString给我11.99653作为字符宽度.不知道为什么.但我不能使用这个值.我估计7.75f而且非常精确.如果我想改变字体大小,我会遇到麻烦.

c# fonts drawstring

5
推荐指数
1
解决办法
2394
查看次数

标签 统计

c# ×2

drawstring ×1

fonts ×1

gdi+ ×1

winforms ×1