namespace Yw.WpfUI.Hydro
{
///
/// 抽象材质辅助类
///
internal class LogicalMaterialHelper
{
//缓存
private readonly ConcurrentDictionary _cache = new();
///
/// 获取纯色材质
///
public Material GetMaterial(Color color)
{
var material = _cache.GetOrAdd(color, CreateMaterial(color));
return material;
}
///
/// 获取纯色材质
///
public Material GetMaterial(Color color, double opacity)
{
var color1 = Color.FromArgb((byte)(opacity * 255.0), color.R, color.G, color.B);
return GetMaterial(color1);
}
///
/// 获取纯色材质
///
public Material GetMaterial(string htmlColor)
{
var color = htmlColor.ToMediaColor();
return GetMaterial(color);
}
///
/// 获取纯色材质
///
public Material GetMaterial(string htmlColor, double opacity)
{
var color = htmlColor.ToMediaColor();
return GetMaterial(color, opacity);
}
//创建纯色材质
private static Material CreateMaterial(Color color)
{
return MaterialHelper.CreateMaterial(color);
}
}
}