好的,我相信你们中的一些人已经知道我的头衔发生了什么,因为我得到这是非常常见的问题。但我的问题其实更深一些,所以请耐心等待我。C#绘图消失(实际上是更多的系统问题)
我所有的编程我在过去几年所做均汇编,主要是8051和AVR作为WEEL在C,同时也为微控制器。 HW比SW更令我着迷。但我也对操作系统及其API等功能着迷。几天后,我告诉我的朋友说,如果你有数学解析器,创建一个非常简单的程序来绘制函数图应该很容易。他不相信我,所以我试图做出一个。
我决定用C#去,即使我不知道OOP。但我想,如果我得到的一切都在一个按钮动作完成它会像好老C.
所以我得到的数学解析器的工作,而且比开始使用Pen对象绘制。我的第一个尝试是绘制简单的线条。阅读完一篇教程之后,我创建了一个简单的坐标轴。
但是,比我注意到一些奇怪的事情,当我简化了我的程序,绘制消失。这让我想起了关于这个所有绘图是如何在系统级完成的。
我认为系统保持活动窗口的图像,直到其更改。所以当你移动你的窗户时,它只会改变它在famebuffer中的位置。当你最小化它时,它会在drawind中跳到framebuffer。
但我看到它不是这样的。所以,请你能告诉我为什么会发生这种情况?我可以在许多教程中阅读如何防止它,但我想知道更多原因。更多的是,这是由于系统API的工作原理,或者因为C#绘图类的工作原理。
此外,这使我想到在C#和.NET库是什么功能那只是呼吁WinAPI的函数,它的工作原理完全一样的方式,以及如何许多图书馆和功能做更多的事情。就像在GDI中没有绘制线的功能一样,并且只能绘制点,那么C#会添加从此点绘制线的功能。我希望你能理解我。
谢谢。
我猜它来自当内存是昂贵的时间。从历史的角度来看,这可能是一个更好的主意,当应用程序被遮挡时,应用程序会重新绘制窗口,而不是将每个窗口的内容的副本保存在单独的内存缓冲区中,以备需要时使用。如果窗口的内容大部分是背景,或者图像是通过绘制基元而不是栅格来构建的,则尤其如此。 – 2010-10-14 22:21:51