operator - Dibujo XOR en C#
if xor c# (2)
Estoy tratando de aprender C # .Net.
Hace algún tiempo escribí una aplicación de reloj analógico pequeña (afición) en VB (edición: VB6, para ser precisos), y pensé que volvería a escribir en C # .NET, como parte de mi proceso de aprendizaje .
En la aplicación VB, dibujé las manecillas del reloj en XOR Drawmode, de modo que tuve que mover la manecilla de los segundos, solo tuve que volver a dibujarla en la posición anterior y luego dibujar la posición actual. No necesito actualizar todo el formulario. . Todo lo que hice fue
Me.DrawMode = vbNotXorPen
y entonces
Me.Line...
en un formulario VB
En C # no encuentro un modo Xor Pen Draw equivalente.
encontré
ControlPaint.DrawReversibleLine
en algún lugar de la red, pero no estoy seguro de si ControlPaint
está destinado a tales fines (y no lo entiendo según el sistema de coordenadas que esté dibujando ControlPaint
)
¿Hay un equivalente al dibujo XOR en C # .NET? ¿O hay una mejor manera de hacer lo que estoy haciendo (con el mejor rendimiento)?
(Tanto VB como C # son mis pasatiempos. Así que siéntete libre de corregirme donde sea que esté mal)
.NET / GDI + no es compatible con el dibujo XOR. Tendrá que solucionarlo mediante el uso de llamadas p / invoke de varias funciones nativas.
Vea el siguiente enlace para más información
http://www.vbaccelerator.com/home/net/code/libraries/Graphics/ZoomIn/article.asp
En mi humilde opinión, hasta que, a menos que esté apuntando a algunas computadoras realmente lentas, no necesita optimizar el rendimiento mediante el uso de la técnica XOR.
Como estarás dibujando la segunda mano solo una vez en un segundo, un redibujado completo del reloj sería mucho mejor. Además, la manecilla de los segundos se verá "bien" si se dibuja directamente, y usará el modo de suavizado configurado en Anti alias para una apariencia más limpia.
Para optimizar el rendimiento, puede crear un bmp para el reloj cada minuto y luego dibujar la segunda mano sobre él.