예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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();
        }
예제 #3
0
        /// <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();
                    }
                }
            }
        }