/// <summary> /// 退出指定UI窗体 /// </summary> /// <param name="uiFormName">指定的窗体名称</param> private void ExitUiForms(string uiFormName) { if (string.IsNullOrEmpty(uiFormName)) { return; } UIFormBase baseUiForm = null; // _dicCurrentShowUiForms 中不存在 uiFormName,直接返回 _dicCurrentShowUiForms.TryGetValue(uiFormName, out baseUiForm); if (baseUiForm == null) { return; } // 指定窗体,标记为“隐藏窗体”,并从 _dicCurrentShowUiForms 移除 baseUiForm.Hiding(); _dicCurrentShowUiForms.Remove(uiFormName); }
/// <summary> /// 关闭"隐藏其他属性"的窗体,且显示其他所有窗体 /// </summary> /// <param name="uiFormName">需要关闭的窗体名称</param> private void ExitUiFormsAndHideOther(string uiFormName) { UIFormBase baseUiForm = null; // 参数检查 if (string.IsNullOrEmpty(uiFormName)) { return; } _dicCurrentShowUiForms.TryGetValue(uiFormName, out baseUiForm); if (baseUiForm == null) { return; } // 隐藏当前窗体,并且在 _dicCurrentShowUiForms 中移除 baseUiForm.Hiding(); _dicCurrentShowUiForms.Remove(uiFormName); // 重新按顺序显示隐藏其他之前的UI窗体 ReShowUi(); }
/// <summary> /// “反向切换”属性窗体的出栈 /// </summary> private void PopUiForm(string uiFormName) { UIFormBase topUiForm = null; // 参数检查 if (_stackCurrentUiForms.Count > 0) { topUiForm = _stackCurrentUiForms.Peek(); if (topUiForm.name == uiFormName) { topUiForm = _stackCurrentUiForms.Pop(); // 隐藏处理 topUiForm.Hiding(); if (_stackCurrentUiForms.Count > 0) { // 新的栈顶重新显示 UIFormBase nextUiForm = _stackCurrentUiForms.Peek(); nextUiForm.ReDisplay(); } } } }