【问题标题】:Drawing flicker free line绘制无闪烁线
【发布时间】:2011-09-22 12:51:54
【问题描述】:

在delphi中,有能力在异或模式下重绘一条线,在这种模式下,笔与背景颜色合并并导致隐藏线,如果我们在背景中有很多颜色,线用该颜色重绘,我该怎么做在c#中同样的事情, 我不想再次用背景色重绘线条来隐藏线条 我也应该说 我想在面板 mousemove 事件中画线以将一个矩形连接到另一个

【问题讨论】:

  • 它仍然受支持,尽管 GDI+ 不支持。使用 ControlPaint.DrawReversibleLine()。
  • 我知道,但我正在寻找图形类的东西
  • 你一定注意到了“not by GDI+”的评论。

标签: c# winforms gdi


【解决方案1】:

在 .net 世界中,您基本上是重新绘制背景色并重新绘制线条。您可以使用 DoubleBuffering 来帮助减少闪烁。

如果您一心想走老路,请查看SetRop2 api 调用。

【讨论】:

  • 重绘上一行不是一个好主意,它会导致重绘一些其他形状,如线条和......,用不同的颜色,我看起来像 MsPaint 线条画,清除背景并重绘所有对象都不是好主意
  • 当然,SetRop2 ​​正是 C​​ontrolPaint.DrawReversibleLine 在幕后所做的。
猜你喜欢
  • 2011-03-10
  • 2022-01-20
  • 2013-05-07
  • 1970-01-01
  • 1970-01-01
  • 2015-11-20
  • 1970-01-01
  • 2011-11-22
  • 1970-01-01
相关资源
最近更新 更多