HDL Home App 第二版本 旧平台金堂用 正在使用
chenqiyang
2022-06-22 dc0309e64f02227d8e1468b7326c07955f804612
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/PswNumberInputControl.cs
old mode 100755 new mode 100644
@@ -1,410 +1,411 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shared.Phone.UserCenter
{
    /// <summary>
    /// 数字按键密码输入控件(自制的手动按键输入类型,请实现【ActionPswFinish】事件)
    /// </summary>
    public class PswNumberInputControl : FrameLayout
    {
        #region ■ 变量声明___________________________
        /// <summary>
        /// 密码输入完成的事件
        /// </summary>
        public Action<string> FinishInputEvent = null;
        /// <summary>
        /// 密码长度
        /// </summary>
        private int passwordLength = 0;
        /// <summary>
        /// 数字按键的大小
        /// </summary>
        private int NumberSize = 196;
        /// <summary>
        /// 数字按键左右的间距
        /// </summary>
        private int NumberLeftRightSpace = 101;
        /// <summary>
        /// 数字按键上下的间距
        /// </summary>
        private int NumberTopButtomSpace = 63;
        /// <summary>
        /// 输入的密码
        /// </summary>
        private string inputPassword = string.Empty;
        /// <summary>
        /// 标题控件
        /// </summary>
        public NormalViewControl btnTitle = null;
        /// <summary>
        /// 错误信息提示控件
        /// </summary>
        public NormalViewControl btnError = null;
        /// <summary>
        /// 显示密码黑点的Frame(有可能需要调整它的位置)
        /// </summary>
        public FrameLayout framePswIcon = null;
        /// <summary>
        /// 数字表盘的Frame(有可能需要调整它的位置)
        /// </summary>
        public FrameLayout frameNumberIcon = null;
        /// <summary>
        /// 数字表盘按键的背景色
        /// </summary>
        public uint NumberIconBackColor = 0xfff5f6fa;
        /// <summary>
        /// 删除控件
        /// </summary>
        private NormalViewControl btnDelete = null;
        /// <summary>
        /// 密码图标控件集合
        /// </summary>
        private List<NormalViewControl> listPswIcon = new List<NormalViewControl>();
        #endregion
        #region ■ 初始化_____________________________
        /// <summary>
        /// <para>密码输入控件(自制的手动按键输入类型,请实现【FinishInputEvent】事件)</para>
        /// <para>宽度为:数字键盘的宽度+左右各40间距</para>
        /// <para>宽度为:【标题的顶部】到【按键0】底部的高度</para>
        /// </summary>
        /// <param name="i_title">初始标题文本信息</param>
        /// <param name="i_passwordLength">密码长度,默认4位</param>
        public PswNumberInputControl(string i_title, int i_passwordLength = 4)
        {
            this.passwordLength = i_passwordLength;
            //加间距
            this.Width = Application.GetMinRealAverage(NumberSize * 3 + NumberLeftRightSpace * 2 + 80);
            this.Height = Application.GetMinRealAverage(NumberSize * 4 + NumberTopButtomSpace * 3) + Application.GetRealHeight(368);
            this.btnTitle = new NormalViewControl(Application.CurrentWidth, Application.GetRealWidth(75), false);
            btnTitle.Text = i_title;
        }
        /// <summary>
        /// 初始化控件
        /// </summary>
        public void InitControl()
        {
            //标题
            btnTitle.Width = this.Width;
            btnTitle.TextAlignment = TextAlignment.Center;
            btnTitle.TextSize = 18;
            this.AddChidren(btnTitle);
            //初始化密码图标
            this.InitPswIconControl();
            //初始化数字表盘
            this.InitNumberTableControl();
            //错误信息提示
            this.btnError = new NormalViewControl(this.Width, Application.GetRealHeight(60), false);
            btnError.Y = Application.GetRealHeight(222);
            btnError.TextAlignment = TextAlignment.Center;
            btnError.TextColor = 0xfff75858;
            this.AddChidren(btnError);
            //删除控件
            this.btnDelete = new NormalViewControl(200, 60, true);
            btnDelete.X = this.Width - Application.GetRealWidth(200) - Application.GetMinRealAverage(40);
            btnDelete.Y = this.Height - Application.GetRealHeight(60);
            btnDelete.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnDelete.TextAlignment = TextAlignment.Center;
            btnDelete.TextID = R.MyInternationalizationString.uDelete;
            this.AddChidren(btnDelete);
            btnDelete.ButtonClickEvent += (sender, e) =>
            {
                if (inputPassword == string.Empty)
                {
                    return;
                }
                //取消一位密码
                inputPassword = inputPassword.Substring(0, inputPassword.Length - 1);
                listPswIcon[inputPassword.Length].BackgroundColor = UserCenterColor.Current.Transparent;
                if (btnError.Visible == true)
                {
                    btnError.Visible = false;
                }
            };
        }
        #endregion
        #region ■ 初始化密码图标_____________________
        /// <summary>
        /// 初始化密码图标
        /// </summary>
        private void InitPswIconControl()
        {
            //图标大小
            int iconSize = Application.GetMinRealAverage(36);
            //图标间的间隔
            int space = Application.GetMinRealAverage(100);
            //计算密码个数是否越界
            int value = Application.CurrentWidth - iconSize * passwordLength;
            if (passwordLength > 1)
            {
                value = value / (passwordLength - 1);
            }
            if (value < space)
            {
                //越界时,调整间距
                space = value;
            }
            this.framePswIcon = new FrameLayout();
            framePswIcon.Height = iconSize;
            framePswIcon.Width = iconSize * passwordLength + space * (passwordLength - 1);
            framePswIcon.Y = Application.GetRealHeight(149);
            framePswIcon.Gravity = Gravity.CenterHorizontal;
            this.AddChidren(framePswIcon);
            for (int i = 0; i < passwordLength; i++)
            {
                var btnIcon = new NormalViewControl(iconSize, iconSize, false);
                btnIcon.BorderWidth = 1;
                btnIcon.BorderColor = 0xff999999;
                btnIcon.Radius = (uint)iconSize / 2;
                if (listPswIcon.Count > 0)
                {
                    btnIcon.X = listPswIcon[listPswIcon.Count - 1].Right + space;
                }
                framePswIcon.AddChidren(btnIcon);
                listPswIcon.Add(btnIcon);
            }
        }
        #endregion
        #region ■ 初始化数字表盘_____________________
        /// <summary>
        /// 初始化数字表盘
        /// </summary>
        private void InitNumberTableControl()
        {
            this.frameNumberIcon = new FrameLayout();
            frameNumberIcon.Y = Application.GetRealHeight(368);
            frameNumberIcon.Width = this.Width;
            frameNumberIcon.Gravity = Gravity.CenterHorizontal;
            frameNumberIcon.Height = Application.GetMinRealAverage(NumberSize * 4 + NumberTopButtomSpace * 3);
            this.AddChidren(frameNumberIcon);
            //前一个控件的右坐标
            int btnTempRight = 0;
            //间距
            int space = Application.GetMinRealAverage(NumberLeftRightSpace);
            //1到9的数字盘
            for (int i = 1; i <= 9; i++)
            {
                var btnNum = this.InitNumberControl();
                btnNum.Text = i.ToString();
                if (btnTempRight != 0)
                {
                    btnNum.X = btnTempRight + space;
                }
                frameNumberIcon.AddChidren(btnNum);
                btnNum.Y = (i - 1) / 3 * (btnNum.Height + Application.GetMinRealAverage(NumberTopButtomSpace));
                btnNum.ButtonClickEvent += (sender, e) =>
                {
                    //点击数字按键
                    this.btnNumClickEvent(sender.Text);
                };
                btnTempRight = btnNum.Right;
                if (i % 3 == 0)
                {
                    //清空
                    btnTempRight = 0;
                }
            }
            //0的数字盘
            var btnNum0 = this.InitNumberControl();
            btnNum0.X = Application.GetMinRealAverage(40) + frameNumberIcon.GetChildren(0).Height + space;
            btnNum0.Text = "0";
            frameNumberIcon.AddChidren(btnNum0);
            btnNum0.Y = 3 * (frameNumberIcon.GetChildren(0).Height + Application.GetMinRealAverage(NumberTopButtomSpace));
            btnNum0.ButtonClickEvent += (sender, e) =>
            {
                //点击数字按键
                this.btnNumClickEvent("0");
            };
        }
        /// <summary>
        /// 初始化数字控件
        /// </summary>
        /// <returns></returns>
        private NormalClickButton InitNumberControl()
        {
            int iconSize = Application.GetMinRealAverage(NumberSize);
            var btnNum = new NormalClickButton(iconSize, iconSize, false);
            btnNum.X = Application.GetMinRealAverage(40);
            btnNum.BackgroundColor = this.NumberIconBackColor;
            btnNum.clickStatuColor = 0x7e656565;
            btnNum.Radius = (uint)iconSize / 2;
            btnNum.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnNum.TextSize = 32;
            return btnNum;
        }
        /// <summary>
        /// 点击数字按键
        /// </summary>
        /// <param name="strNum">数字值</param>
        private void btnNumClickEvent(string strNum)
        {
            if (inputPassword.Length >= listPswIcon.Count)
            {
                return;
            }
            if (btnError.Visible == true)
            {
                btnError.Visible = false;
            }
            //特效改变
            listPswIcon[inputPassword.Length].BackgroundColor = 0xff333333;
            inputPassword += strNum;
            //输入结束
            if (FinishInputEvent != null && inputPassword.Length == passwordLength)
            {
                //调用回调函数
                FinishInputEvent(inputPassword);
            }
        }
        #endregion
        #region ■ 重置控件___________________________
        /// <summary>
        /// 重置控件
        /// </summary>
        /// <param name="i_title">标题信息</param>
        public void ResetControlInfo(string i_title)
        {
            //标题
            btnTitle.Text = i_title;
            //记录的密码
            inputPassword = string.Empty;
            //密码图标
            for (int i = 0; i < listPswIcon.Count; i++)
            {
                listPswIcon[i].BackgroundColor = UserCenterColor.Current.Transparent;
            }
            //错误信息
            btnError.Text = string.Empty;
        }
        #endregion
        #region ■ 错误信息设置_______________________
        /// <summary>
        /// 显示错误的信息
        /// </summary>
        /// <param name="i_msg"></param>
        public void SetErrorMsg(string i_msg)
        {
            if (btnError.Visible == false)
            {
                btnError.Visible = true;
            }
            btnError.Text = i_msg;
            //记录的密码
            inputPassword = string.Empty;
            //密码图标
            for (int i = 0; i < listPswIcon.Count; i++)
            {
                listPswIcon[i].BackgroundColor = UserCenterColor.Current.Transparent;
            }
        }
        #endregion
        #region ■ 变更删除按钮位置___________________
        /// <summary>
        /// 变更删除按钮位置,它最初的默认位置是在最底部(父控件的高度会自动调整)
        /// </summary>
        /// <param name="XX">X轴(不变更请设置为-1)</param>
        /// <param name="YY">Y轴(不变更请设置为-1)</param>
        /// <param name="real">是否计算真实值</param>
        public void ChangedDeleteButtonPoint(int XX, int YY, bool real = true)
        {
            if (real == true)
            {
                if (XX != -1)
                {
                    XX = Application.GetRealWidth(XX);
                }
                if (YY != -1)
                {
                    YY = Application.GetRealHeight(YY);
                }
            }
            if (XX != -1)
            {
                this.btnDelete.X = XX;
            }
            if (YY != -1)
            {
                this.btnDelete.Y = YY;
            }
            //自动调整高度
            int minHeight = Application.GetMinRealAverage(NumberSize * 4 + NumberTopButtomSpace * 3) + Application.GetRealHeight(368);
            int realHeight = this.btnDelete.Bottom;
            if (realHeight < minHeight)
            {
                realHeight = minHeight;
            }
            this.Height = realHeight;
        }
        #endregion
        #region ■ 添加关闭按钮_______________________
        /// <summary>
        /// 添加关闭按钮
        /// </summary>
        /// <returns></returns>
        public IconViewControl AddCloseButton()
        {
            //关闭按钮
            var btnClose = new IconViewControl(86);
            btnClose.Y = Application.GetRealHeight(-12);
            btnClose.X = this.Width - btnClose.IconSize;
            btnClose.UnSelectedImagePath = "Item/CancelIcon.png";
            this.AddChidren(btnClose);
            return btnClose;
        }
        #endregion
        #region ■ 控件摧毁___________________________
        /// <summary>
        /// 控件摧毁
        /// </summary>
        public override void RemoveFromParent()
        {
            FinishInputEvent = null;
            base.RemoveFromParent();
        }
        #endregion
    }
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Shared.Phone.UserCenter
{
    /// <summary>
    /// 数字按键密码输入控件(自制的手动按键输入类型,请实现【ActionPswFinish】事件)
    /// </summary>
    public class PswNumberInputControl : FrameLayoutBase
    {
        #region ■ 变量声明___________________________
        /// <summary>
        /// 密码输入完成的事件
        /// </summary>
        public Action<string> FinishInputEvent = null;
        /// <summary>
        /// 密码长度
        /// </summary>
        private int passwordLength = 0;
        /// <summary>
        /// 数字按键的大小
        /// </summary>
        private int NumberSize = 196;
        /// <summary>
        /// 数字按键左右的间距
        /// </summary>
        private int NumberLeftRightSpace = 101;
        /// <summary>
        /// 数字按键上下的间距
        /// </summary>
        private int NumberTopButtomSpace = 63;
        /// <summary>
        /// 输入的密码
        /// </summary>
        private string inputPassword = string.Empty;
        /// <summary>
        /// 标题控件
        /// </summary>
        public NormalViewControl btnTitle = null;
        /// <summary>
        /// 错误信息提示控件
        /// </summary>
        public NormalViewControl btnError = null;
        /// <summary>
        /// 显示密码黑点的Frame(有可能需要调整它的位置)
        /// </summary>
        public FrameLayout framePswIcon = null;
        /// <summary>
        /// 数字表盘的Frame(有可能需要调整它的位置)
        /// </summary>
        public FrameLayout frameNumberIcon = null;
        /// <summary>
        /// 数字表盘按键的背景色
        /// </summary>
        public uint NumberIconBackColor = 0xfff5f6fa;
        /// <summary>
        /// 删除控件
        /// </summary>
        private NormalViewControl btnDelete = null;
        /// <summary>
        /// 密码图标控件集合
        /// </summary>
        private List<NormalViewControl> listPswIcon = new List<NormalViewControl>();
        #endregion
        #region ■ 初始化_____________________________
        /// <summary>
        /// <para>密码输入控件(自制的手动按键输入类型,请实现【FinishInputEvent】事件)</para>
        /// <para>宽度为:数字键盘的宽度+左右各40间距</para>
        /// <para>宽度为:【标题的顶部】到【按键0】底部的高度</para>
        /// </summary>
        /// <param name="i_title">初始标题文本信息</param>
        /// <param name="i_passwordLength">密码长度,默认4位</param>
        public PswNumberInputControl(string i_title, int i_passwordLength = 4)
        {
            this.passwordLength = i_passwordLength;
            //加间距
            this.Width = this.GetPictrueRealSize(NumberSize * 3 + NumberLeftRightSpace * 2 + 80);
            this.Height = this.GetPictrueRealSize(NumberSize * 4 + NumberTopButtomSpace * 3) + Application.GetRealHeight(368);
            this.btnTitle = new NormalViewControl(Application.CurrentWidth, Application.GetRealWidth(75), false);
            btnTitle.Text = i_title;
            btnTitle.IsBold = true;
        }
        /// <summary>
        /// 初始化控件
        /// </summary>
        public void InitControl()
        {
            //标题
            btnTitle.Width = this.Width;
            btnTitle.TextAlignment = TextAlignment.Center;
            btnTitle.TextSize = 18;
            this.AddChidren(btnTitle);
            //初始化密码图标
            this.InitPswIconControl();
            //初始化数字表盘
            this.InitNumberTableControl();
            //错误信息提示
            this.btnError = new NormalViewControl(this.Width, Application.GetRealHeight(60), false);
            btnError.Y = Application.GetRealHeight(222);
            btnError.TextAlignment = TextAlignment.Center;
            btnError.TextColor = 0xfff75858;
            this.AddChidren(btnError);
            //删除控件
            this.btnDelete = new NormalViewControl(200, 60, true);
            btnDelete.X = this.Width - Application.GetRealWidth(200) - this.GetPictrueRealSize(40);
            btnDelete.Y = this.Height - Application.GetRealHeight(60);
            btnDelete.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnDelete.TextAlignment = TextAlignment.Center;
            btnDelete.TextID = R.MyInternationalizationString.uDelete;
            this.AddChidren(btnDelete);
            btnDelete.ButtonClickEvent += (sender, e) =>
            {
                if (inputPassword == string.Empty)
                {
                    return;
                }
                //取消一位密码
                inputPassword = inputPassword.Substring(0, inputPassword.Length - 1);
                listPswIcon[inputPassword.Length].BackgroundColor = UserCenterColor.Current.Transparent;
                if (btnError.Visible == true)
                {
                    btnError.Visible = false;
                }
            };
        }
        #endregion
        #region ■ 初始化密码图标_____________________
        /// <summary>
        /// 初始化密码图标
        /// </summary>
        private void InitPswIconControl()
        {
            //图标大小
            int iconSize = this.GetPictrueRealSize(36);
            //图标间的间隔
            int space = this.GetPictrueRealSize(100);
            //计算密码个数是否越界
            int value = Application.CurrentWidth - iconSize * passwordLength;
            if (passwordLength > 1)
            {
                value = value / (passwordLength - 1);
            }
            if (value < space)
            {
                //越界时,调整间距
                space = value;
            }
            this.framePswIcon = new FrameLayout();
            framePswIcon.Height = iconSize;
            framePswIcon.Width = iconSize * passwordLength + space * (passwordLength - 1);
            framePswIcon.Y = Application.GetRealHeight(149);
            framePswIcon.Gravity = Gravity.CenterHorizontal;
            this.AddChidren(framePswIcon);
            for (int i = 0; i < passwordLength; i++)
            {
                var btnIcon = new NormalViewControl(iconSize, iconSize, false);
                btnIcon.BorderWidth = 1;
                btnIcon.BorderColor = 0xff999999;
                btnIcon.Radius = (uint)iconSize / 2;
                if (listPswIcon.Count > 0)
                {
                    btnIcon.X = listPswIcon[listPswIcon.Count - 1].Right + space;
                }
                framePswIcon.AddChidren(btnIcon);
                listPswIcon.Add(btnIcon);
            }
        }
        #endregion
        #region ■ 初始化数字表盘_____________________
        /// <summary>
        /// 初始化数字表盘
        /// </summary>
        private void InitNumberTableControl()
        {
            this.frameNumberIcon = new FrameLayout();
            frameNumberIcon.Y = Application.GetRealHeight(368);
            frameNumberIcon.Width = this.Width;
            frameNumberIcon.Gravity = Gravity.CenterHorizontal;
            frameNumberIcon.Height = this.GetPictrueRealSize(NumberSize * 4 + NumberTopButtomSpace * 3);
            this.AddChidren(frameNumberIcon);
            //前一个控件的右坐标
            int btnTempRight = 0;
            //间距
            int space = this.GetPictrueRealSize(NumberLeftRightSpace);
            //1到9的数字盘
            for (int i = 1; i <= 9; i++)
            {
                var btnNum = this.InitNumberControl();
                btnNum.Text = i.ToString();
                if (btnTempRight != 0)
                {
                    btnNum.X = btnTempRight + space;
                }
                frameNumberIcon.AddChidren(btnNum);
                btnNum.Y = (i - 1) / 3 * (btnNum.Height + this.GetPictrueRealSize(NumberTopButtomSpace));
                btnNum.ButtonClickEvent += (sender, e) =>
                {
                    //点击数字按键
                    this.btnNumClickEvent(sender.Text);
                };
                btnTempRight = btnNum.Right;
                if (i % 3 == 0)
                {
                    //清空
                    btnTempRight = 0;
                }
            }
            //0的数字盘
            var btnNum0 = this.InitNumberControl();
            btnNum0.X = this.GetPictrueRealSize(40) + frameNumberIcon.GetChildren(0).Height + space;
            btnNum0.Text = "0";
            frameNumberIcon.AddChidren(btnNum0);
            btnNum0.Y = 3 * (frameNumberIcon.GetChildren(0).Height + this.GetPictrueRealSize(NumberTopButtomSpace));
            btnNum0.ButtonClickEvent += (sender, e) =>
            {
                //点击数字按键
                this.btnNumClickEvent("0");
            };
        }
        /// <summary>
        /// 初始化数字控件
        /// </summary>
        /// <returns></returns>
        private NormalClickButton InitNumberControl()
        {
            int iconSize = this.GetPictrueRealSize(NumberSize);
            var btnNum = new NormalClickButton(iconSize, iconSize, false);
            btnNum.X = this.GetPictrueRealSize(40);
            btnNum.BackgroundColor = this.NumberIconBackColor;
            btnNum.clickStatuColor = 0x7e656565;
            btnNum.Radius = (uint)iconSize / 2;
            btnNum.TextColor = UserCenterColor.Current.TextGrayColor3;
            btnNum.TextSize = 32;
            return btnNum;
        }
        /// <summary>
        /// 点击数字按键
        /// </summary>
        /// <param name="strNum">数字值</param>
        private void btnNumClickEvent(string strNum)
        {
            if (inputPassword.Length >= listPswIcon.Count)
            {
                return;
            }
            if (btnError.Visible == true)
            {
                btnError.Visible = false;
            }
            //特效改变
            listPswIcon[inputPassword.Length].BackgroundColor = 0xff333333;
            inputPassword += strNum;
            //输入结束
            if (FinishInputEvent != null && inputPassword.Length == passwordLength)
            {
                //调用回调函数
                FinishInputEvent(inputPassword);
            }
        }
        #endregion
        #region ■ 重置控件___________________________
        /// <summary>
        /// 重置控件
        /// </summary>
        /// <param name="i_title">标题信息</param>
        public void ResetControlInfo(string i_title)
        {
            //标题
            btnTitle.Text = i_title;
            //记录的密码
            inputPassword = string.Empty;
            //密码图标
            for (int i = 0; i < listPswIcon.Count; i++)
            {
                listPswIcon[i].BackgroundColor = UserCenterColor.Current.Transparent;
            }
            //错误信息
            btnError.Text = string.Empty;
        }
        #endregion
        #region ■ 错误信息设置_______________________
        /// <summary>
        /// 显示错误的信息
        /// </summary>
        /// <param name="i_msg"></param>
        public void SetErrorMsg(string i_msg)
        {
            if (btnError.Visible == false)
            {
                btnError.Visible = true;
            }
            btnError.Text = i_msg;
            //记录的密码
            inputPassword = string.Empty;
            //密码图标
            for (int i = 0; i < listPswIcon.Count; i++)
            {
                listPswIcon[i].BackgroundColor = UserCenterColor.Current.Transparent;
            }
        }
        #endregion
        #region ■ 变更删除按钮位置___________________
        /// <summary>
        /// 变更删除按钮位置,它最初的默认位置是在最底部(父控件的高度会自动调整)
        /// </summary>
        /// <param name="XX">X轴(不变更请设置为-1)</param>
        /// <param name="YY">Y轴(不变更请设置为-1)</param>
        /// <param name="real">是否计算真实值</param>
        public void ChangedDeleteButtonPoint(int XX, int YY, bool real = true)
        {
            if (real == true)
            {
                if (XX != -1)
                {
                    XX = Application.GetRealWidth(XX);
                }
                if (YY != -1)
                {
                    YY = Application.GetRealHeight(YY);
                }
            }
            if (XX != -1)
            {
                this.btnDelete.X = XX;
            }
            if (YY != -1)
            {
                this.btnDelete.Y = YY;
            }
            //自动调整高度
            int minHeight = this.GetPictrueRealSize(NumberSize * 4 + NumberTopButtomSpace * 3) + Application.GetRealHeight(368);
            int realHeight = this.btnDelete.Bottom;
            if (realHeight < minHeight)
            {
                realHeight = minHeight;
            }
            this.Height = realHeight;
        }
        #endregion
        #region ■ 添加关闭按钮_______________________
        /// <summary>
        /// 添加关闭按钮
        /// </summary>
        /// <returns></returns>
        public IconViewControl AddCloseButton()
        {
            //关闭按钮
            var btnClose = new IconViewControl(86);
            btnClose.Y = Application.GetRealHeight(-12);
            btnClose.X = this.Width - btnClose.IconSize;
            btnClose.UnSelectedImagePath = "Item/CancelIcon.png";
            this.AddChidren(btnClose);
            return btnClose;
        }
        #endregion
        #region ■ 控件摧毁___________________________
        /// <summary>
        /// 控件摧毁
        /// </summary>
        public override void RemoveFromParent()
        {
            FinishInputEvent = null;
            base.RemoveFromParent();
        }
        #endregion
    }
}