namespace Yw.WpfUI.Hydro
|
{
|
/// <summary>
|
/// 抽象覆盖可见性辅助类
|
/// </summary>
|
internal class LogicalOverrideVisibleHelper
|
{
|
//缓存
|
private readonly Dictionary<VisualL3d, bool> _cache = new();
|
|
/// <summary>
|
/// 获取可见性
|
/// </summary>
|
public bool GetVisible(VisualL3d visual)
|
{
|
if (visual == null)
|
{
|
return true;
|
}
|
if (!_cache.ContainsKey(visual))
|
{
|
return true;
|
}
|
return _cache[visual];
|
}
|
|
/// <summary>
|
/// 设置可见性
|
/// </summary>
|
public void SetVisible(VisualL3d visual, bool Visible)
|
{
|
_cache[visual] = Visible;
|
}
|
|
/// <summary>
|
/// 设置可见性
|
/// </summary>
|
public void SetVisible(List<VisualL3d> visuals, bool Visible)
|
{
|
visuals?.ForEach(x => _cache[x] = Visible);
|
}
|
|
/// <summary>
|
/// 清理可见性
|
/// </summary>
|
public void ClearVisible(VisualL3d visual)
|
{
|
if (!_cache.ContainsKey(visual))
|
{
|
return;
|
}
|
_cache.Remove(visual);
|
}
|
|
/// <summary>
|
/// 清理可见性
|
/// </summary>
|
public void ClearVisible(List<VisualL3d> visuals)
|
{
|
visuals?.ForEach(x => ClearVisible(x));
|
}
|
|
|
|
}
|
}
|