C# 保存我在表格上画的东西?
所以是的 基本上我用图形在表格上画了一些东西。现在如果我在表格上移动一个窗口,我画的东西就会被抹掉 有没有办法保存图形?C# 保存我在表格上画的东西?,c#,vb.net,forms,C#,Vb.net,Forms,所以是的 基本上我用图形在表格上画了一些东西。现在如果我在表格上移动一个窗口,我画的东西就会被抹掉 有没有办法保存图形? (我使用的是Windows.Forms)您需要在控件事件中绘制。您必须重新绘制在绘制事件处理程序中绘制的内容。不要从绘制事件处理程序外部绘制到表单(听起来您可能正在这样做) 您可以在绘制事件处理程序中每次重新绘制内容,也可以在屏幕外位图中绘制一次,然后在绘制处理程序中仅显示位图 两者的代码几乎相同,但要绘制屏幕外位图,需要为要绘制的图形上下文设置一个新位图 这说明了使用屏幕外
(我使用的是Windows.Forms)您需要在控件事件中绘制。您必须重新绘制在绘制事件处理程序中绘制的内容。不要从绘制事件处理程序外部绘制到表单(听起来您可能正在这样做) 您可以在绘制事件处理程序中每次重新绘制内容,也可以在屏幕外位图中绘制一次,然后在绘制处理程序中仅显示位图 两者的代码几乎相同,但要绘制屏幕外位图,需要为要绘制的图形上下文设置一个新位图
这说明了使用屏幕外位图存储图像所需的所有操作。(事实上,如果您从本例中删除屏幕外位图代码,剩下的代码是如何在绘制处理程序中绘制)看在上帝的份上,我再也不能让它变得清晰了。在内存图形中绘制是一种简单的方法,在绘制事件处理程序中,将图像从内存图形复制到窗体的图形“还有其他方法吗?”-基本上不是。Windows窗体不是保留模式图形系统:它需要每次重新绘制,尽管正如Benny所说,您可以将图形隐藏在某个地方,以尽量减少实际的重新绘制工作。但是如果你想要一个保留模式系统,你在上下文中声明或创建图形“对象”,并且系统需要在需要时绘制它们,那么你需要考虑像WPF之类的东西。