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

本文关键字:加载 图像 背景 对象 图形 新加载 清除 | 更新日期: 2023-09-27 18:21:56

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

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

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

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

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

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

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

有什么想法被感激地接受了,也许是Invalidate()的某种把戏?

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

为其他有同样问题的人解决了这个问题;

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