Пример #1
0
        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);
        }