namespace Yw.WpfUI.Hydro
|
{
|
/// <summary>
|
/// 抽象覆盖透明度辅助类
|
/// </summary>
|
internal class LogicalOverrideOpacityHelper
|
{
|
private readonly Dictionary<VisualL3d, double> _cache = new();
|
|
/// <summary>
|
/// 获取透明度
|
/// </summary>
|
public double GetOpacity(VisualL3d visual)
|
{
|
if (visual == null)
|
{
|
return 1d;
|
}
|
if (!_cache.ContainsKey(visual))
|
{
|
return 1d;
|
}
|
return _cache[visual];
|
}
|
|
/// <summary>
|
/// 设置透明度
|
/// </summary>
|
public void SetOpacity(VisualL3d visual, double opacity)
|
{
|
_cache[visual] = opacity;
|
}
|
|
/// <summary>
|
/// 设置透明度
|
/// </summary>
|
public void SetOpacity(List<VisualL3d> visuals, double opacity)
|
{
|
visuals?.ForEach(x => _cache[x] = opacity);
|
}
|
|
/// <summary>
|
/// 清理透明度
|
/// </summary>
|
public void ClearOpacity(VisualL3d visual)
|
{
|
if (!_cache.ContainsKey(visual))
|
{
|
return;
|
}
|
_cache.Remove(visual);
|
}
|
|
/// <summary>
|
/// 清理透明度
|
/// </summary>
|
public void ClearOpacity(List<VisualL3d> visuals)
|
{
|
visuals?.ForEach(x => ClearOpacity(x));
|
}
|
|
|
|
}
|
}
|