2009-05-18 26 views
1

我在使用DashStyle.Dash的同時呈現對象的層次結構。我的應用程序廣泛使用Graphics.Transform,我發現在某些比例值(包括100%的比例)和某些旋轉角度下,當使用DashStyle.Dash的筆時,Graphics.DrawLine會引發OutOfMemoryException。使用谷歌我發現這是一個well-knownproblem。微軟告訴我們,這不是一個blockingissue。到目前爲止,我還沒有找到解決這個問題的方法。GDI + DashStyle在.NET中拋出OutOfMemoryException

我有什麼選擇?

+1

我假設你是處置筆?其中一篇文章提到爲了避免Graphics.DrawLine * s *中的重複點。你正在使用單數版本,對嗎?你可能會發布一些代碼;也許這將有助於得到一些答案。 – 2009-08-14 19:43:49

回答

1

我剛剛遇到同樣的問題。經進一步調查,我發現了以下情況。

  1. 線長恰好是自定義虛線圖案長度。 更改線長度+/- 1像素可避免該錯誤。
  2. 我用LineCapRoundDashCapRound,切換到 LineCapSquareDashCapFlat和避免錯誤
  3. 從試圖弄平的路徑(大概從圓端)
  4. 筆寬度爲零附帶的錯誤。

我最終的解決方案是不繪製零寬度線!

相關問題