2011-01-19 2 views
3

Я рисую строку в объекте Graphics в Windows CE с использованием C# .NET 3.5.Anti aliasing DrawLine on CE

код я использую выглядит следующим образом:

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.

http://drawingcf.codeplex.com/

Это question привести меня к http://www.amanithvg.com/project.html который предлагает OpenGL, как структуры с библиотеками Windows CE. Может быть, мега-overkill, хотя и для нескольких строк.

Наконец, вы всегда можете использовать растровое изображение, но позже у вас могут возникнуть проблемы с прозрачностью.

+0

, вероятно, слишком много работы, реализуя некоторые из этих предложений - спасибо, хотя! – Chris

+0

@ Крис Я абсолютно согласен с вами в этом! – Tom

Смежные вопросы