/// <summary> /// 把当前窗体加载到 _dicCurrentShowUiForms 中 /// </summary> /// <param name="uiFormName"></param> private void LoadUiToCurrentCache(string uiFormName) { UIFormBase baseUiFormFromAllCache = null; // 从_DicAllUIForms 中得到窗体基类 // 把当前窗体,加载到 _dicCurrentShowUiForms 集合中 _dicAllUiForms.TryGetValue(uiFormName, out baseUiFormFromAllCache); if (baseUiFormFromAllCache != null) { _dicCurrentShowUiForms.Add(uiFormName, baseUiFormFromAllCache); baseUiFormFromAllCache.Display(); //显示当前窗体 } else { Debug.Log(GetType() + "/baseUIFormFromAllCache =NULL , uiFormName = " + uiFormName); } }
/// <summary> /// UI窗体入栈 /// </summary> /// <param name="baseUiForm">窗体的名称</param> private void PushUiFormToStack(UIFormBase baseUiForm) { if (baseUiForm == null) { Debug.Log(GetType() + "/PushUIFormToStack UIFormBase =NULL"); } else { // 判断栈集合中,是否已有窗体,有则“冻结”处理 if (_stackCurrentUiForms.Count > 0) { UIFormBase topUiForm = _stackCurrentUiForms.Peek(); topUiForm.Freeze(); } // 把指定的UI窗体,入栈操作 _stackCurrentUiForms.Push(baseUiForm); // 显示窗体 baseUiForm.Display(); } }
/// <summary> /// 打来"隐藏其他属性"的窗体,且隐藏其他所有窗体 /// </summary> /// <param name="uiFormName">需要打开的窗体名称</param> private void EnterUiFormsAndHideOther(string uiFormName) { UIFormBase baeUiFormFromAll = null; _dicAllUiForms.TryGetValue(uiFormName, out baeUiFormFromAll); if (baeUiFormFromAll == null) { return; } // 把 _dicCurrentShowUiForms 和 _stackCurrentUiForms 中所有的窗体都隐藏 foreach (UIFormBase baseuiForm in _dicCurrentShowUiForms.Values) { baseuiForm.Hiding(); } foreach (UIFormBase uiForm in _stackCurrentUiForms) { uiForm.Hiding(); } // 加入到 _dicCurrentShowUiForms _dicCurrentShowUiForms.Add(uiFormName, baeUiFormFromAll); //显示当前窗体 baeUiFormFromAll.Display(); }