【发布时间】:2013-01-10 06:45:50
【问题描述】:
我在 c# 中绘制字符串时遇到问题
这是我的代码:
Graphic.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
Pen pen = new Pen(brush, 2f);
Font font = new Font("Segoue UI", 15);
graphic.DrawString("2", font, brush, new PointF(0f, 0f));
以前我创建了图片框,并从中做了图形对象。 问题是“2”不是在 (0;0) 中绘制,而是在 (4;5) 中绘制。如果我关闭 AntiAlias 的事件仍在 (4;5) 中。
我通过从 (0;0) 到 (200;0) 和从 (0;0) 到 (0;200) 绘制两条线来检查它,并根据它们计算出绘制字符串中的错误。
任何想法为什么?我需要准确地绘制字符串。
//编辑 我也在尝试以这种方式设置字体:
Font font = new Font("Microsoft Sans Serif", 10);
在(0,0)中画出“2”,“2”的真实位置是(3,3)。与绘图“1”错误相同(3;3)。
【问题讨论】:
-
这是行高的工作方式。
-
即使我使用这个:Pen pen = new Pen(brush);问题依然存在
-
尝试按照this page 上的说明显式设置文本对齐属性。
-
请发布屏幕截图,以便我们知道“2”不是在 (0;0) 中而是在 (4;5) 中绘制的意思。