RaUI/Source/ryControls/WeifenLuo.WinFormsUI/ThemeVS2012/PaintingService.cs
zilinsoft 3262955f2f ### 2023-11-07更新
------
#### RaUIV4    V4.0.2311.0701
- *.[全新]整合了MyDb、ryControls、MyDb_MySQL等dll文件到RaUI一个项目。
- *.[新增]新增ApkOp类,可以轻松获取APK信息。
- *.[新增]新增JsonExt扩展类,让Json操作更简单。
- *.[新增]新增WebP类,可以支持webp格式的图片。
- *.[改进]ryQuickSQL中的AddField方法改为自动替换已存在的同名值。
- *.[修复]ryQuickSQL中的AddFieldCalc方法无法正常计算的BUG。
2023-11-07 16:37:53 +08:00

56 lines
1.5 KiB
C#

using System.Collections.Generic;
using System.Drawing;
using WeifenLuo.WinFormsUI.Docking;
#pragma warning disable CS1591 // 缺少对公共可见类型或成员的 XML 注释
namespace WeifenLuo.WinFormsUI.ThemeVS2012
{
public class PaintingService : IPaintingService
{
IDictionary<KeyValuePair<int, int>, Pen> _penCache = new Dictionary<KeyValuePair<int, int>, Pen>();
IDictionary<int, SolidBrush> _brushCache = new Dictionary<int, SolidBrush>();
public SolidBrush GetBrush(Color color)
{
var key = color.ToArgb();
if (_brushCache.ContainsKey(key))
{
return _brushCache[key];
}
var result = new SolidBrush(color);
_brushCache.Add(key, result);
return result;
}
public Pen GetPen(Color color, int thickness)
{
var key = new KeyValuePair<int, int>(color.ToArgb(), thickness);
if (_penCache.ContainsKey(key))
{
return _penCache[key];
}
var result = new Pen(color, thickness);
_penCache.Add(key, result);
return result;
}
public void CleanUp()
{
foreach (var pen in _penCache)
{
pen.Value.Dispose();
}
_penCache.Clear();
foreach (var brush in _brushCache)
{
brush.Value.Dispose();
}
_brushCache.Clear();
}
}
}