public static Brush GetBrush(Color color) { if (!_brushes.ContainsKey(color)) { var brush = new SolidColorBrush(color.ToWindowsColor()); brush.Freeze(); _brushes.Add(color, brush); } return _brushes[color]; }
public static Brush GetTransparentBrush(Color color) { var brush = GetBrush(color); if (!_transparentBrushes.ContainsKey(brush)) { var transparent = brush.CloneCurrentValue(); transparent.Opacity = 0.5; transparent.Freeze(); _transparentBrushes.Add(brush, transparent); } return _transparentBrushes[brush]; }
public static Pen GetPen(Color color, double thickness) { if (!_pens.ContainsKey(color)) _pens.Add(color, new Dictionary<double, Pen>()); if (!_pens[color].ContainsKey(thickness)) { var brush = GetBrush(color); var pen = new Pen(brush, thickness); pen.Freeze(); _pens[color].Add(thickness, pen); } return _pens[color][thickness]; }