GDI + DashStyle выдает исключение OutOfMemory в .NET - PullRequest
1 голос
/ 18 мая 2009

Я использую DashStyle.Dash при рендеринге моей иерархии объектов. Мое приложение широко использует Graphics.Transform, и я обнаружил, что при некоторых значениях шкалы (включая шкалу 100%) и некоторых углах поворота Graphics.DrawLine создает OutOfMemoryException при использовании ручки с DashStyle.Dash. Используя Google, я обнаружил, что это хорошо известная проблема . Microsoft сообщает нам, что это не блокирующая проблема . До сих пор я не нашел решения этой проблемы.

Какие у меня варианты?

1 Ответ

1 голос
/ 06 сентября 2012

Я только что столкнулся с той же проблемой. После дальнейшего расследования я обнаружил следующее.

  1. Длина линии была точно такой же, как у произвольной длины тире. Изменение длины строки +/- 1 пиксель позволило избежать ошибки.
  2. Я использовал LineCapRound и DashCapRound, переключаясь на LineCapSquare и DashCapFlat избежали ошибки
  3. Ошибка возникла при попытке сгладить путь (предположительно с закругленных концов)
  4. Ширина пера была равна нулю.

Мое окончательное решение состояло в том, чтобы не рисовать линии нулевой ширины!

...