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