public Pen GetPen(Color color, float width = 1, DashStyle style = DashStyle.Solid) { var desc = new PenDescriber(width, color, style); Pen pen; if (pens.TryGetValue(desc, out pen)) return pen; pen = new Pen(color); if (width != 1) pen.Width = width; if (style != DashStyle.Solid) { pen.DashStyle = style; switch (pen.DashStyle) { case DashStyle.Dot: pen.DashPattern = defaultDotPattern; break; case DashStyle.Dash: pen.DashPattern = defaultDashPattern; break; case DashStyle.DashDot: pen.DashPattern = defaultDashDotPattern; break; default: pen.DashPattern = defaultDashDotDotPattern; break; } } pens.Add(desc, pen); return pen; }
public Pen GetPen(Color color, float width = 1, DashStyle style = DashStyle.Solid) { var desc = new PenDescriber(width, color, style); Pen pen; if (pens.TryGetValue(desc, out pen)) { return(pen); } pen = new Pen(color); if (width != 1) { pen.Width = width; } if (style != DashStyle.Solid) { pen.DashStyle = style; switch (pen.DashStyle) { case DashStyle.Dot: pen.DashPattern = defaultDotPattern; break; case DashStyle.Dash: pen.DashPattern = defaultDashPattern; break; case DashStyle.DashDot: pen.DashPattern = defaultDashDotPattern; break; default: pen.DashPattern = defaultDashDotDotPattern; break; } } pens.Add(desc, pen); return(pen); }