我的应用程序基本上是一种图形类型排列,有一个包含verticies的面板(让我们从这里称之为节点),这些节点需要被拖动。
这些节点是在图形对象上绘制的矩形。
为了实现这一点,我将每个节点存储为一个对象,该类包含用于存储其边界矩形的变量以及x,y位置等等,该对象的每个新实例都存储在一个列表中,该列表可以在需要时进行迭代
拖动/重绘机制的实际逻辑似乎工作正常,我的问题是面板的背景图像。
一旦mouseup事件被触发,我更新已经通过它的对象变量移动/拖动的节点的位置,清除图形对象,然后重绘每个节点,以便可以根据新位置更新图形表示。 / p>
问题在于,当我重新加载面板的背景图像时,它不显示,我只剩下背景颜色和重绘节点。
我认为这可能是因为我正在从文件加载它,所以我在运行时加载它作为图像,但仍然没有快乐。
感谢任何想法,或许是Invalidate()的某种诡计?
答案 0 :(得分:0)
想出来,对于其他有同样问题的人;
panel1.Invalidate();
panel1.Refresh();
//set the background image at the end of this method.
redrawScene(nodes);