清除图形对象后不重新加载面板背景图像

时间:2013-07-11 17:13:47

标签: c# graphics gdi+

我的应用程序基本上是一种图形类型排列,有一个包含verticies的面板(让我们从这里称之为节点),这些节点需要被拖动。

这些节点是在图形对象上绘制的矩形。

为了实现这一点,我将每个节点存储为一个对象,该类包含用于存储其边界矩形的变量以及x,y位置等等,该对象的每个新实例都存储在一个列表中,该列表可以在需要时进行迭代

拖动/重绘机制的实际逻辑似乎工作正常,我的问题是面板的背景图像。

一旦mouseup事件被触发,我更新已经通过它的对象变量移动/拖动的节点的位置,清除图形对象,然后重绘每个节点,以便可以根据新位置更新图形表示。 / p>

问题在于,当我重新加载面板的背景图像时,它不显示,我只剩下背景颜色和重绘节点。

我认为这可能是因为我正在从文件加载它,所以我在运行时加载它作为图像,但仍然没有快乐。

感谢任何想法,或许是Invalidate()的某种诡计?

1 个答案:

答案 0 :(得分:0)

想出来,对于其他有同样问题的人;

panel1.Invalidate();
panel1.Refresh();

//set the background image at the end of this method.
redrawScene(nodes);