From dc0309e64f02227d8e1468b7326c07955f804612 Mon Sep 17 00:00:00 2001
From: chenqiyang <1406175257@qq.com>
Date: 星期三, 22 六月 2022 11:22:18 +0800
Subject: [PATCH] 修改引用路径

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/PswNumberInputControl.cs |  411 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 411 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/PswNumberInputControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/PswNumberInputControl.cs
new file mode 100644
index 0000000..168ad29
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/PswNumberInputControl.cs
@@ -0,0 +1,411 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter
+{
+    /// <summary>
+    /// 鏁板瓧鎸夐敭瀵嗙爜杈撳叆鎺т欢(鑷埗鐨勬墜鍔ㄦ寜閿緭鍏ョ被鍨�,璇峰疄鐜般�怉ctionPswFinish銆戜簨浠�)
+    /// </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>
+        /// 鏄剧ず瀵嗙爜榛戠偣鐨凢rame(鏈夊彲鑳介渶瑕佽皟鏁村畠鐨勪綅缃�)
+        /// </summary>
+        public FrameLayout framePswIcon = null;
+        /// <summary>
+        /// 鏁板瓧琛ㄧ洏鐨凢rame(鏈夊彲鑳介渶瑕佽皟鏁村畠鐨勪綅缃�)
+        /// </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>瀵嗙爜杈撳叆鎺т欢(鑷埗鐨勬墜鍔ㄦ寜閿緭鍏ョ被鍨�,璇峰疄鐜般�怓inishInputEvent銆戜簨浠�)</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
+    }
+}

--
Gitblit v1.8.0