/// <summary> /// 显示(打开)UI窗体 /// 功能: /// 1: 根据UI窗体的名称,加载到“所有UI窗体”缓存集合中 /// 2: 根据不同的UI窗体的“显示模式”,分别作不同的加载处理 /// </summary> /// <param name="uiFormName">UI窗体预设的名称</param> public void showUIForms(string uiFormName) { BaseUIForm baseUIForms = null; //UI窗体基类 //参数的检查 if (string.IsNullOrEmpty(uiFormName)) { return; } //根据UI窗体的名称,加载到“所有UI窗体”缓存集合中 baseUIForms = loadFormsToAllUIFormsCatch(uiFormName); if (baseUIForms == null) { return; } //是否清空“栈集合”中得数据 if (baseUIForms.CurrentUIType.isClearStack) { clearStackArray(); } //根据不同的UI窗体的显示模式,分别作不同的加载处理 switch (baseUIForms.CurrentUIType.uiShowMode) { case UIShowMode.Normal: //“普通显示”窗口模式 //把当前窗体加载到“当前窗体”集合中。 loadUIToCurrentCache(uiFormName); break; case UIShowMode.Reverse: //需要“反向切换”窗口模式 pushUIFormToStack(uiFormName); break; case UIShowMode.HideOther: //“隐藏其他”窗口模式 enterUIFormsAndHideOther(uiFormName); break; default: break; } }
//(“反向切换”属性)窗体的出栈逻辑 private void popUIFroms() { if (stackCurrentUI.Count >= 2) { //出栈处理 BaseUIForm topUIForms = stackCurrentUI.Pop(); //做隐藏处理 topUIForms.hiding(); //出栈后,下一个窗体做“重新显示”处理。 BaseUIForm nextUIForms = stackCurrentUI.Peek(); nextUIForms.redisplay(); } else if (stackCurrentUI.Count == 1) { //出栈处理 BaseUIForm topUIForms = stackCurrentUI.Pop(); //做隐藏处理 topUIForms.hiding(); } }