我正在努力学习C#.Net。
我曾经在VB中写过小(爱好)模拟时钟应用程序(编辑:VB6,确切地说),我想我会在C#.NET中重写,作为我学习的一部分过程
在VB应用程序中,我在XOR Drawmode中绘制了时钟,因此我必须移动秒针,我只需要在之前的位置重绘它然后绘制当前位置 - 我不需要刷新整个表格。我所做的只是
Me.DrawMode = vbNotXorPen
然后
Me.Line...
在VB表单上
在C#中,我没有找到等效的Xor Pen Draw模式。
我找到了
ControlPaint.DrawReversibleLine
网上的某个地方,但我不确定ControlPaint
是否用于此类目的(我根据协调系统ControlPaint
绘制的内容并不理解)
C#.NET中是否存在等效的XOR绘图? 或者有更好的方法来做我正在做的事情(具有最佳表现)
(VB和C#都是我的爱好。所以无论我错在哪里都随时纠正我)
答案 0 :(得分:3)
.NET / GDI +不支持XOR绘图。您必须使用几个本机函数的p / invoke调用来解决它。
有关详细信息,请参阅以下链接
http://www.vbaccelerator.com/home/net/code/libraries/Graphics/ZoomIn/article.asp
答案 1 :(得分:2)
恕我直言,除非你的目标是一些非常慢的计算机,否则你不需要使用XOR技术来优化性能。
由于您只需要在一秒钟内绘制一次秒针,因此完全重绘时钟会好得多。此外,如果直接绘制,秒针将“看起来”很好,并使用平滑模式设置为Anti alias以获得更清晰的外观。
为了优化性能,您可以每隔一分钟为时钟创建一个bmp,然后在其上绘制秒针。