CE上的抗锯齿DrawLine

时间:2011-01-19 12:30:18

标签: c# .net graphics compact-framework windows-ce

我正在使用C#.NET 3.5为Windows CE中的Graphics对象画一条线。

我使用的代码如下所示:

e.Graphics.DrawLine(new Pen(Color.FromArgb(11, 118, 200), 2), x1, y1, x2, y2);

然而,由于锯齿等等,这看起来很糟糕。无论如何我可以画出反锯齿线吗?

据我所知,Graphics对象本身不支持这种情况,但是无论如何使用一些技巧“欺骗”这种效果?

3 个答案:

答案 0 :(得分:5)

如果您使用纯色背景绘制快速技巧,您可以在实际线条之前使用较粗的笔和背景颜色与线条颜色之间的颜色绘制线条,例如,在绘制时黑色背景:

e.Graphics.DrawLine(new Pen(Color.FromArgb(5, 59, 100), 3), x1, y1, x2, y2);
e.Graphics.DrawLine(new Pen(Color.FromArgb(11, 118, 200), 2), x1, y1, x2, y2);

这会为线条添加“发光”(即使在完美的水平/垂直线上)。

答案 1 :(得分:2)

我感觉到你的痛苦。几年前我为.NETCF做了类似的事情,我正在走下各种有趣的道路。结束了比工作更多的工作。看看这个可怕的:

http://freespace.virgin.net/hugo.elias/graphics/x_wuline.htm

http://social.msdn.microsoft.com/Forums/en-US/netfxcompact/thread/b34f56c4-585b-4ff5-ac7d-b6e2ae516ccf/

此外,这可能会提供一些答案,但可能是WM GDI系统的有用替代品。

http://drawingcf.codeplex.com/

这个question引导我到http://www.amanithvg.com/project.html,它提供了一个类似OpenGL的框架和Windows CE库。虽然只是为了几行,但可能会超重。

最后,您可以随时使用位图,但稍后您可能会遇到透明度问题。

答案 2 :(得分:1)

发现这个XrossGDI +完整的原生C#:

http://www.isquaredsoftware.com/XrossOneGDIPlus.php