2012-10-23 61 views
1

我有一個BufferedGraphics實例,我在上面畫了一些圖。我想創建一個名爲DrawLegends的函數,它需要一個BufferedGraphics的實例並將兩個字符串繪製爲圖例。在BufferedGraphics的底部繪圖

我可以創建一個PointF實例指向(0,0),但我想將圖例放在底部。我應該如何繼續?我可以使用BufferedGraphics實例嗎?還是我還需要我正在繪製的面板?

+1

請分享您當前的代碼。 – Reniuz

+0

使用BufferedGraphics總是錯誤的。用這個代替:http://stackoverflow.com/a/3113515/17034 –

+0

@musefan如果你寫你的評論作爲答案,我會把它當作接受的答案。 – hattenn

回答

1

重要的是您需要知道繪圖畫布(即面板)的尺寸(主要是高度)。這將用於最終計算圖例的位置。因此,如果您沒有在其他地方存儲身高信息,那麼您將不得不在某種程度上使用面板

0

在一天結束時,幾乎所有繪製到屏幕上的對象都可以手動繪製,就像它們所具有的封面下面一樣,或者在您感覺喜歡時可以將圖形對象暴露出來。

所以,如果你在一個圖形對象上或你當前正在使用的任何東西上進行繪圖,那麼當你完成繪圖時,只需將該圖形對象繪製到任何要顯示的控件上即可。像圖像。沒有理由爲什麼你不能在底層控制你要畫上,而不是讓自己的圖形對象的圖形對象傳遞,但如果你有確實的方法:

void DrawGraph(string xLegend, string yLegend, IList<XYValues> values, Graphics graphics); 

然後你就可以繪製到該圖形與數據對象,調用invalidate和你完成。