using Panuon.WPF.UI; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HMI.UI.Util { public class MaskHolder { private static Dictionary> Container; private static Dictionary ReverseContainer; public static void AddMask(WindowX window, object source) { if (Container.ContainsKey(window)) { Container[window].Add(source); } else { Container[window] = new List { source }; } ReverseContainer.Add(source, window); window.IsMaskVisible = true; } public static void RemoveMask(object source) { if (!ReverseContainer.ContainsKey(source)) { return; } WindowX win = ReverseContainer[source]; if (!Container.ContainsKey(win) || Container[win] == null || Container[win].Count <= 0) { win.IsMaskVisible = false; } ReverseContainer.Remove(source); } } }