2012-09-11 25 views
1

問題就像MONO CAIRO C#中的繪畫是如何工作的?MONO [開羅]如何繪畫作品

在我的應用程序中,我正在建造一幢房子,設計就像我有一份房屋每一部分的清單,例如一個屋頂清單,一個牆上清單,一個地下室清單..一旦所有清單準備就緒我正在打印清單。

這是我會打電話來畫出房子

public void DrawHouse (Context ct) 
{ 
    house.HouseDrawing.DrawBasement(ct); 
    house.HouseDrawing.DrwaWall(ct); 
    house.HouseDrawing.DrawRoof(ct); 
    house.HouseDrawing.DrawWindows(ct); 
    house.HouseDrawing.DrawDoor(ct); 
} 

就我所知的截至落色語句中執行任何應顯示在用戶界面上的功能。但在我的情況下,只要執行語句就會打印。

請讓我知道它是如何工作的。

+0

關於提問的注意事項:請不要在您的問題中添加「thank you notes」(註釋,upvote /接受好的答案)和簽名(已經在您的用戶名中),因爲它們通常不會爲問題添加有用的信息。而且通常不會將標籤複製到標題中,特別是像C#一樣。 –

回答

0

發生的是預期的行爲。我不確定什麼house.HouseDrawing.DrawBasement做,但我認爲它畫到屏幕上。如果是這種情況,那麼當執行這些語句時,您繪製的任何東西都會出現。該圖形不會在屏幕上顯示爲永久性的,並且如果由於某種原因(例如,最小化窗口,移動另一個窗口等)導致該屏幕部分無效,則需要重新繪製該圖形。

+0

是的,房子。** HouseDrawing.DrawBasement **將在屏幕上繪製一個地下室矩形。但我的問題是,當我們按順序執行一個程序(只有一個線程)時,一旦控制進入上述函數,它不會被認爲是響應,直到它完成函數中的所有語句。但在我的情況下,一旦它執行** house.HouseDrawing.DrawBasement **,然後打印Wall,一旦它執行房屋,它就會打印地下室。** HouseDrawing.DrwaWall(ct)**。 – Veeresh

+0

但據我所知,它不應該打印任何東西,直到它競爭上述方法中的所有陳述。如果我錯了,請糾正我,如果有任何文件在線提供給我。 – Veeresh

+0

@Veeresh我沒有使用過單聲道,但如果它像我用過的任何其他繪圖函數一樣工作,那麼它將在執行命令時繪製。你的函數中沒有任何東西可以告訴它拖延繪圖直到最後一條語句被執行。它如何知道你想要一次繪製一切?另外,它爲什麼重要? – MikeKulls