/// <summary> /// 使用默认或设定好的 /// </summary> /// <typeparam name="T"></typeparam> public void HideWindow <T>() where T : UIWndBase { UIWndBase wnd = null; if (mWindowDic.TryGetValue(typeof(T), out wnd)) { wnd.HideWnd(); } }
/// <summary> /// 隐藏全部窗口 默认或设定的方式 /// </summary> /// <param name="wnd"></param> /// <returns></returns> public void HideWindow(UIWndBase wnd) { foreach (Type t in mWindowDic.Keys.ToArray()) { if (mWindowDic[t] == wnd) { mWindowDic[t].HideWnd(); break; } } }
/// <summary> /// 注册窗口 保存缓存 /// </summary> /// <param name="wnd"></param> void RegisterWindow(UIWndBase wnd) { Type t = wnd.GetType(); mWindowDic.Add(t, wnd); mContextDic.Add(t, wnd.m_Context); if (mWindowQueue != null) { mWindowQueue.Enqueue(t); if (mWindowQueue.Count > hideMax) { Type type = mWindowQueue.Dequeue(); mWindowDic.Remove(type); DestroyWindow(type); } } // wnd.DestroyWndHandler = (wd, e) => { RemoveWindow(wd); }; }