好的,我相信你們中的一些人已經知道我的頭銜發生了什麼,因爲我得到這是非常常見的問題。但我的問題其實更深一些,所以請耐心等待我。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