public static bool CloseWindow(string winName, bool user = true) { if (!Instance._windowCache.ContainsKey(winName)) { return(false); } UIWindow win = Instance._windowCache[winName]; if (!user) { if (win.ConfigData.IsRecord) { AppendOpenWindow(winName, win.Param); } } if (win.ConfigData.IsHover) { Instance._openingHoverWindow.Remove(winName); } bool b = win.Close(); if (win.ConfigData.CloseDelete) { win.Release(); win = null; GC.Collect(); Instance._windowCache.Remove(winName); } return(b); }
public static bool CloseWindow(UIWindow win, bool user = true) { if (!user) { if (win.Settings.IsRecord) { AppendOpenWindow(win.Settings.WinName, win.Param); } } if (win.Settings.IsHover) { Instance._openingHoverWindow.Remove(win); } bool b = win.Close(); if (win.Settings.CloseDelete) { RemoveCacheWindow(win); win.Release(); win = null; } else if (win.Settings.IsMultiple) { RemoveCacheWindow(win); AddCacheWindow(win); //将关掉的窗口移到队列的末尾 } return(b); }