2011-01-19 8 views
3

C#.NET 3.5を使用してWindows CEのGraphicsオブジェクトに線を描いています。CE上のアンチエイリアスDrawLine

私はこのようなルックスを使用していますコード:

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

これは、しかし等によりジャギーにひどい見える作品はとにかくあり、私はアンチエイリアシングさの線を描くことができますか?

Graphicsオブジェクトはこれをネイティブにサポートしていませんが、とにかくこのエフェクトをいくつかトリッキーに使っているのですか?

答えて

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); 

これは、ラインに「グロー」を追加します(しかし、完全な水平/垂直ラインでも)。

+0

完璧性だが、それは見た目を改善するための簡単な方法です!ありがとう。 – Chris

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システムのための便利な代替可能性:このawfulnessを見ています。

http://drawingcf.codeplex.com/

このquestionは、Windows CEライブラリとフレームワークのようにOpenGLを提供していますhttp://www.amanithvg.com/project.htmlに私をリードしています。わずか数行ではあるが、巨大な過度の攻撃になるかもしれない。

最後に、ビットマップを使用することはできますが、後で透過性に問題が生じることがあります。このXrossGDI +完全なネイティブC#見つかり

+0

はおそらく、それらの提案の一部を実装するにはあまりにも多くの作業です - おかげで! – Chris

+0

@Chris私はそれについてあなたに絶対に同意します! – Tom

関連する問題