簡體   English   中英

以ac#形式使用painteventargs; 如何將更大的圖像繪制到Graphics對象(以及滾動條)?

[英]using painteventargs in a c# form; how do I draw a larger image to the Graphics object (with scrollbars as well)?

我正在寫一些數據采集代碼。 應用程序獲取數據時,會在內容窗格中繪制圖形。 現在,對於由固定長度掃描組成的數據,一切都可以正常工作:將圖形縮放以適合從painteventargs獲得的圖形對象。 現在,我們正在實施“免費掃描”,隨着您收集數據的時間越來越長。 我們想從painteventargs中將圖形的大小不斷增加的圖形繪制到圖形對象,但是一旦它變得比圖形對象大,則會生成“內存不足”異常。 有沒有辦法增加圖形對象或簡單地替換它? 我們希望能夠使用滾動條來查看所有數據。

謝謝你的幫助!

這是代碼的一部分(注意:我明白為什么我會遇到內存不足錯誤-位圖太大。這只是做我想做的事情的一次嘗試。我在問這個問題因為我現在很沮喪。):

    System.Drawing.Graphics G = e.Graphics;
    e.Graphics.Clear(System.Drawing.Color.White);                
    Bitmap bm = new Bitmap(10000, 1000);
    Graphics h = Graphics.FromImage(bm);
    h.DrawLine(myPens[0], 0, 0, 1000, 10000);
    G.DrawImage(bm,0,0);

我建議您計算平均點並繪制圖形,而不是每個數據點。 領先的圖表控件也可以做到這一點。 為了不向用戶隱藏細節,您應該實現縮放功能,該功能僅占用特定的數據間隔。 放大越多,時間間隔就越短。 放大得越多,您可以顯示的細節越多。 希望這個策略能對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM