2008-11-03 2 views
1

Я пытаюсь изучить C# .Net.XOR Рисование в C#

я написал небольшой (хобби) приложение Analog Clock в VB некоторое время назад (редактировать: VB6, чтобы быть точным), и я думал, что я буду переписывать в C# .NET, как часть моего обучения процесса.

В приложении VB, я обратил руки часы в XOR DrawMode, так что я на ходу второй рукой, я просто пришлось перекраивать его в прежнее положение, а затем сделать текущую позицию - я не нужно обновлять всю форму. Все, что я сделал

Me.DrawMode = vbNotXorPen 

, а затем

Me.Line... 

на VB формы

В C# я не найти эквивалент Xor Pen режим Draw.

Я нашел

ControlPaint.DrawReversibleLine 

где-то в сети, но я не уверен, является ли ControlPaint предназначены для таких целей (и я не понимаю, на основе системы, что координируют ControlPaint рисует)

Есть ли эквивалент рисунка XOR в C# .NET? Или есть лучший способ сделать то, что я делаю (с наилучшей производительности)

(оба VB и C# мои хобби. Так что не стесняйтесь, поправьте меня, куда бы я не ошибаюсь)

+0

К «VB некоторое время назад», вы должны иметь в виду VB6 или ранее. Это верно? – cfeduke 2008-11-03 05:34:21

ответ

2

ИМХО, пока и если вы не нацеливаете некоторые действительно медленные компьютеры, вам не нужно оптимизировать производительность, используя технику XOR.

Поскольку вы будете рисовать секундную стрелку только один раз в секунду, полная перерисовка часов будет намного лучше. Кроме того, секундная стрелка будет «хорошо выглядеть», если нарисовать ее напрямую, и использовать режим сглаживания, установленный в «Псевдоним» для более чистого внешнего вида.

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

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