2009-05-18 27 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. 笔宽度为零附带的错误。

我最终的解决方案是不绘制零宽度线!

相关问题