From 6fa9d69da922c8049f5acfcbb9ce9fd26811024c Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 16 四月 2020 17:10:57 +0800
Subject: [PATCH] 请合并代码

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

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/TopRightMenuControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/TopRightMenuControl.cs
new file mode 100755
index 0000000..4593695
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/TopRightMenuControl.cs
@@ -0,0 +1,252 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter
+{
+    /// <summary>
+    /// 鍋氭垚涓�涓瓨鍦ㄤ簬鍙充笂瑙掔殑鑿滃崟鎺т欢(闈炴ゼ灞傝彍鍗�,閮藉彲浠ヤ娇鐢�)
+    /// </summary>
+    public class TopRightMenuControl : FrameLayout
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鍒楄〃鎺т欢
+        /// </summary>
+        private VerticalListControl listView = null;
+        /// <summary>
+        /// 鑳屾櫙瀹瑰櫒鎺т欢
+        /// </summary>
+        private FrameLayout frameBack = null;
+        /// <summary>
+        /// 琛岄珮搴�
+        /// </summary>
+        private int RowHeight = 150;
+        /// <summary>
+        /// 琛屽搴�
+        /// </summary>
+        private int RowWidth = 395;
+        /// <summary>
+        /// 琛屾暟
+        /// </summary>
+        private int RowCount = 0;
+
+        #endregion
+
+        #region 鈻� 鍒濆鍖朹____________________________
+
+        /// <summary>
+        /// 鍋氭垚涓�涓瓨鍦ㄤ簬鍙充笂瑙掔殑鑿滃崟鎺т欢(闈炴ゼ灞傝彍鍗�,閮藉彲浠ヤ娇鐢�)
+        /// </summary>
+        /// <param name="i_RowCount">涓�鍏辨湁鍑犺(涓嶅惈鏍囬)</param>
+        /// <param name="i_widthType">杩欎釜鑿滃崟鐨勫搴︽ā寮�,鐩墠鍙敮鎸�
+        /// <para>1: 395瀹藉害</para>
+        /// <para>2: 449瀹藉害</para>
+        /// </param>
+        /// <param name="titleText">鏍囬鏂囨湰(濡傛灉涓嶄负绌�,鑿滃崟妯″紡鍙樻洿涓烘嫢鏈夋爣棰樼殑妯″紡)</param>
+        public TopRightMenuControl(int i_RowCount, int i_widthType, string titleText = null)
+        {
+            this.RowCount = i_RowCount;
+            if (i_widthType == 1)
+            {
+                this.RowWidth = 395;
+            }
+            else if (i_widthType == 2)
+            {
+                this.RowWidth = 449;
+            }
+            //鍒濆鍖栫敾闈㈢殑鎺т欢
+            this.InitFormControl(titleText, i_widthType);
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栫敾闈㈢殑鎺т欢
+        /// </summary>
+        private void InitFormControl(string titleText, int i_widthType)
+        {
+            this.BackgroundColor = UserCenterColor.Current.DialogBackColor;
+            this.MouseUpEventHandler += (sender2, e2) =>
+            {
+                //鍏抽棴鑷韩
+                this.RemoveFromParent();
+            };
+            var frame = (FrameLayout)UserView.HomePage.Instance.GetChildren(UserView.HomePage.Instance.ChildrenCount - 1);
+            frame.AddChidren(this);
+
+            //鏈�澶ф樉绀�5涓�
+            int rowCount = this.RowCount > 5 ? 5 : this.RowCount;
+            if (titleText != null)
+            {
+                //449瀹藉害鐨勬椂鍊欙紝鍗充娇鏄庣粏宸茬粡瓒呰繃浜�5涓紝浣嗘槸杩樻槸鍙互+1鐨�,鍥犱负杩欎釜妯″紡澶氫簡涓�寮犲浘鐗�
+                if (rowCount < 5 || i_widthType == 2)
+                {
+                    //鑿滃崟+1
+                    rowCount++;
+                }
+            }
+
+            //鑳屾櫙
+            this.frameBack = new FrameLayout();
+            frameBack.X = Application.GetRealWidth(662 - (RowWidth - 395));
+            frameBack.Y = Application.GetRealHeight(161);
+            frameBack.Width = Application.GetRealWidth(RowWidth);
+            frameBack.Height = Application.GetRealHeight(RowHeight * rowCount + 16);
+            frameBack.BackgroundImagePath = "MenuGroud/TopRightMenu" + i_widthType + "_" + rowCount + ".png";
+            this.AddChidren(frameBack);
+
+            var frameTable = new FrameLayout();
+            frameTable.Y = Application.GetRealHeight(16);
+            frameTable.Height = Application.GetRealHeight(RowHeight * rowCount);
+            frameBack.AddChidren(frameTable);
+
+            if (titleText != null)
+            {
+                var btnTitle = new NormalViewControl(frameBack.Width - Application.GetRealWidth(81), Application.GetRealHeight(58), false);
+                btnTitle.X = Application.GetRealWidth(81);
+                btnTitle.Y = Application.GetRealHeight(58 + 16);
+                btnTitle.Text = titleText;
+                frameTable.AddChidren(btnTitle);
+            }
+
+            //鍒楄〃鎺т欢
+            this.listView = new VerticalListControl();
+            listView.Radius = (uint)Application.GetRealHeight(17);
+            if (titleText != null)
+            {
+                //鎷ユ湁鏍囬
+                listView.Y = Application.GetRealHeight(RowHeight);
+                listView.Height = frameTable.Height - Application.GetRealHeight(RowHeight);
+            }
+            else
+            {
+                //娌℃湁鏍囬
+                listView.Height = frameTable.Height;
+            }
+            frameTable.AddChidren(listView);
+        }
+
+        #endregion
+
+        #region 鈻� 娣诲姞鑿滃崟___________________________
+
+        /// <summary>
+        /// 娣诲姞鑿滃崟琛�(UI濂囪懇鍙樻洿浜�,鏆楄壊鍥剧墖涓洪�変腑,榛戣壊鍥剧墖涓洪潪閫変腑)
+        /// </summary>
+        /// <param name="TextValue">鏄剧ず鐨勬枃瀛�</param>
+        /// <param name="selectPic">鍥剧墖(鏆楄壊鍥剧墖)</param>
+        /// <param name="unSelectPic">鍥剧墖(榛戣壊鍥剧墖)</param>
+        /// <param name="action">鍗曞嚮鑿滃崟鎵ц鐨勪簨浠�</param>
+        /// <param name="closeOnClick">鍗曞嚮鐨勬椂鍊欙紝鍏抽棴鑿滃崟</param>
+        public void AddRowMenu(string TextValue, string selectPic, string unSelectPic, Action action, bool closeOnClick = true)
+        {
+            var rowFrame = new FrameRowControl();
+            rowFrame.LeftOffset = Application.GetRealWidth(81) - ControlCommonResourse.XXLeft;
+            rowFrame.Height = Application.GetRealHeight(RowHeight);
+            listView.AddChidren(rowFrame);
+            rowFrame.MainKeys = listView.ChildrenCount.ToString();
+            //杩欓噷鐗规畩锛岀Щ闄ゆ帀鑷韩鐨勫崟鍑讳簨浠�
+            rowFrame.RemoveBaseClickEvent();
+            //鍥炬爣
+            var btnIcon = rowFrame.AddLeftIcon(81);
+            btnIcon.UnSelectedImagePath = unSelectPic;
+            btnIcon.SelectedImagePath = selectPic;
+            //鏄剧ず鏂囧瓧
+            var btnText = rowFrame.AddLeftCaption(TextValue, RowWidth - 173);
+            btnText.X = Application.GetRealWidth(173);
+            //搴曠嚎
+            if (listView.ChildrenCount != this.RowCount)
+            {
+                var btnLine = rowFrame.AddBottomLine();
+                btnLine.X = Application.GetRealWidth(81);
+            }
+
+            //鍒濆鐘舵�佸叏涓洪潪閫変腑鐘舵��
+            this.SetRowSelectStatu(rowFrame, false);
+
+            bool happenMove = false;
+            //閫夋嫨鐘舵��(閲嶅啓搴曞眰鏁堟灉)
+            rowFrame.SelectStatuEvent += (statu) =>
+            {
+                //false涓虹姸鎬佽繕鍘�,浣嗘槸鐘舵�佽繕鍘熸斁鍦ㄩ紶鏍囧脊璧蜂簨浠堕噷闈�
+                if (statu == true)
+                {
+                    //璁剧疆涓洪�夋嫨鐘舵��
+                    this.SetRowSelectStatu(rowFrame, true);
+                    happenMove = false;
+                }
+            };
+            //鎸夐敭鐐瑰嚮
+            rowFrame.ButtonClickEvent += (sender, e) =>
+            {
+                //璁剧疆涓洪潪閫夋嫨鐘舵��
+                this.SetRowSelectStatu(rowFrame, false);
+
+                if (closeOnClick == true)
+                {
+                    this.RemoveFromParent();
+                }
+                action?.Invoke();
+            };
+
+            //寮�濮嬭Е鍙戠Щ鍔ㄤ簨浠�(杩欎釜浜嬩欢浼氶绻佺殑瑙﹀彂)
+            btnIcon.ButtonHappenMoveEvent += () =>
+            {
+                if (happenMove == false)
+                {
+                    //璁剧疆涓洪潪閫夋嫨鐘舵��
+                    this.SetRowSelectStatu(rowFrame, false);
+                }
+                happenMove = true;
+            };
+        }
+        #endregion
+
+        #region 鈻� 璁剧疆閫夋嫨鐘舵�乢______________________
+
+        /// <summary>
+        /// 璁剧疆閫夋嫨鐘舵��
+        /// </summary>
+        /// <param name="frame">琛屾帶浠�</param>
+        /// <param name="select">閫夋嫨鐨勭姸鎬�</param>
+        private void SetRowSelectStatu(FrameRowControl frame, bool select)
+        {
+            //鍥炬爣
+            var btnIcon = (IconViewControl)frame.GetChildren(0);
+            if (btnIcon != null)
+            {
+                btnIcon.IsSelected = select;
+            }
+            //鏂囨湰
+            var btnText = (NormalViewControl)frame.GetChildren(1);
+            if (btnText != null)
+            {
+                btnText.TextColor = select == true ? UserCenterColor.Current.TextGrayColor1 : UserCenterColor.Current.TextColor1;
+                btnText.IsBold = !select;
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 閲嶆柊璁剧疆鐧借壊閮ㄥ垎鐨勫潗鏍�
+        /// </summary>
+        /// <param name="XX">鐪熷疄鍊�(涓嶆敼鍙樼殑璇濆~-1)</param>
+        /// <param name="YY">鐪熷疄鍊�(涓嶆敼鍙樼殑璇濆~-1)</param>
+        public void SetLocation(int XX = -1, int YY = -1)
+        {
+            if (XX != -1)
+            {
+                frameBack.X = XX;
+            }
+            if (YY != -1)
+            {
+                frameBack.Y = YY;
+            }
+        }
+
+        #endregion
+    }
+}

--
Gitblit v1.8.0