【发布时间】:2013-09-08 22:06:33
【问题描述】:
我目前正在尝试使用 Graphics 类在 C# 中绘制一些线条。
我的问题是,有时(主要是在重新绘制表单大小时)缺少某些部分的线条。
这就是当时的样子:
这是我画线的代码:
Graphics g = pnlGraph.CreateGraphics();
g.Clear(pnlGraph.BackColor);
Point p1 = new Point((mainNode.Left + (mainNode.Width / 2)), (mainNode.Top + (mainNode.Height / 2)));
Point p2 = new Point((pic.Left + (pic.Width / 2)), (pic.Top + (pic.Height / 2)));
g.DrawLine(new Pen(new SolidBrush(Color.Black), 2), p1, p2);
这段代码从面板中间的 mainNode 到它周围的一些节点绘制了一些线。
我正在调用函数来绘制线条:
加载, 调整大小, 可见状态改变了
我也试过在Paint of the form 和panel 中没用。
有什么方法可以修复它或用其他方式绘制这些线条吗?
感谢您的任何回答!
【问题讨论】:
-
您可能对 my example 使用当前相关的 .Net Windows UI 技术感兴趣。
-
叹息,一次又一次,没有巨魔的“我不知道发生了什么,但因为我知道这是可行的,所以扔掉你所有的东西”的贡献,永远不要使用 CreateGraphics()。只有当你有能力每秒重新绘制 20 多帧时,这才有效。这样您就不会在意丢失之前的绘画输出。使用 Paint 事件进行绘制。
-
@HansPassant 很多人对我所谓的“巨魔 cmets”说
"thank you, this is awesome!",因为我让他们节省了无数小时试图从过时、完全无用的技术中破解有用的东西,我会限制自己向人们展示我的例子,让他们自己决定。 -
@HansPassant 感谢您的回答。您能否将其发布为答案,以便我将其标记为答案?