0

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

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

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

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

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

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

我想可能是因为我是从文件中加载它的,所以我在运行时将它加载为图像,但仍然没有乐趣。

感激地收到任何想法,也许是 Invalidate() 的某种诡计?

4

1 回答 1

0

想通了,对于其他有同样问题的人;

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

//set the background image at the end of this method.
redrawScene(nodes);
于 2013-07-11T19:03:53.513 回答