GraphicsPathを指定してPathGradientBrushのインスタンスを作成する際、GraphicsPathに設定されているパスの内容次第ではPathGradientBrushのコンストラクタが例外OutOfMemoryExceptionをスローする。
扇型のパス (GraphicsPath.AddPie)
GraphicsPath.AddPieでsweepAngleに0
などの微小な角度を指定したパスを追加すると、OutOfMemoryExceptionとなる。
扇形が正円(外接するRectangleが正方形)の場合は、sweepAngleに指定する値が1.611493E-43
以上(後述の検証結果参照)であればOutOfMemoryExceptionとならない模様。 この値は扇形(外接するRectangle)の大きさによらず一定。 扇型が楕円(外接するRectangleが長方形)の場合は、その縦横比に応じてOutOfMemoryExceptionとなるsweepAngleの値も変わる。
以下は、GraphicsPath.AddPieに指定するsweepAngleの値を変えて正円の扇型パスを追加し、PathGradientBrushがOutOfMemoryExceptionをスローするかどうかを検証した結果。
Graphics.FillPie/DrawPie
Graphics.FillPieメソッドやGraphics.DrawPieメソッドでは、sweepAngleが0
や微小な値であってもOutOfMemoryExceptionやArgumentOutOfRangeExceptionはスローされない。
libgdiplus(Mono)の場合
libgdiplusでは、AddPieメソッドに指定するsweepAngleが0
や微小な値であってもOutOfMemoryExceptionやArgumentOutOfRangeExceptionはスローされない。
それ以外のパス
未検証。