From 18a7f9f40e5fab3bee5d4ac3d8fd0273dea052d6 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期日, 26 四月 2020 12:05:28 +0800
Subject: [PATCH] 先上传一个非最新的版本
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/TopRightMenuControl.cs | 159 +++++++++++++++++++++++++++++++---------------------
1 files changed, 95 insertions(+), 64 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/TopRightMenuControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/TopRightMenuControl.cs
index 20b11a9..4593695 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/TopRightMenuControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/TopRightMenuControl.cs
@@ -5,7 +5,7 @@
namespace Shared.Phone.UserCenter
{
/// <summary>
- /// 鍋氭垚涓�涓瓨鍦ㄤ簬鍙充笂瑙掔殑鑿滃崟鎺т欢
+ /// 鍋氭垚涓�涓瓨鍦ㄤ簬鍙充笂瑙掔殑鑿滃崟鎺т欢(闈炴ゼ灞傝彍鍗�,閮藉彲浠ヤ娇鐢�)
/// </summary>
public class TopRightMenuControl : FrameLayout
{
@@ -16,9 +16,9 @@
/// </summary>
private VerticalListControl listView = null;
/// <summary>
- /// 鍓嶅洖閫夋嫨鐨勮
+ /// 鑳屾櫙瀹瑰櫒鎺т欢
/// </summary>
- private FrameRowControl oldRowFrame = null;
+ private FrameLayout frameBack = null;
/// <summary>
/// 琛岄珮搴�
/// </summary>
@@ -37,23 +37,33 @@
#region 鈻� 鍒濆鍖朹____________________________
/// <summary>
- /// 鍋氭垚涓�涓瓨鍦ㄤ簬鍙充笂瑙掔殑鑿滃崟鎺т欢
+ /// 鍋氭垚涓�涓瓨鍦ㄤ簬鍙充笂瑙掔殑鑿滃崟鎺т欢(闈炴ゼ灞傝彍鍗�,閮藉彲浠ヤ娇鐢�)
/// </summary>
/// <param name="i_RowCount">涓�鍏辨湁鍑犺(涓嶅惈鏍囬)</param>
- /// <param name="i_width">杩欎釜鑿滃崟鏈夊瀹�</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_width = 395, string titleText = null)
+ public TopRightMenuControl(int i_RowCount, int i_widthType, string titleText = null)
{
this.RowCount = i_RowCount;
- this.RowWidth = i_width;
+ if (i_widthType == 1)
+ {
+ this.RowWidth = 395;
+ }
+ else if (i_widthType == 2)
+ {
+ this.RowWidth = 449;
+ }
//鍒濆鍖栫敾闈㈢殑鎺т欢
- this.InitFormControl(titleText);
+ this.InitFormControl(titleText, i_widthType);
}
/// <summary>
/// 鍒濆鍖栫敾闈㈢殑鎺т欢
/// </summary>
- private void InitFormControl(string titleText)
+ private void InitFormControl(string titleText, int i_widthType)
{
this.BackgroundColor = UserCenterColor.Current.DialogBackColor;
this.MouseUpEventHandler += (sender2, e2) =>
@@ -66,53 +76,54 @@
//鏈�澶ф樉绀�5涓�
int rowCount = this.RowCount > 5 ? 5 : this.RowCount;
- if (rowCount < 5 && titleText != null)
+ if (titleText != null)
{
- //鑿滃崟+1
- rowCount++;
+ //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.X = Application.GetRealWidth(662 - (RowWidth - 395));
- frameTable.Y = Application.GetRealHeight(158 + 15 + 1);
- frameTable.Width = Application.GetRealWidth(RowWidth);
+ frameTable.Y = Application.GetRealHeight(16);
frameTable.Height = Application.GetRealHeight(RowHeight * rowCount);
- frameTable.BackgroundColor = UserCenterColor.Current.White;
- frameTable.BorderColor = UserCenterColor.Current.Transparent;
- frameTable.Radius = 6;
- this.AddChidren(frameTable);
+ frameBack.AddChidren(frameTable);
if (titleText != null)
{
- var btnTitle = new NormalViewControl(frameTable.Width - Application.GetRealWidth(81), Application.GetRealHeight(58), false);
+ var btnTitle = new NormalViewControl(frameBack.Width - Application.GetRealWidth(81), Application.GetRealHeight(58), false);
btnTitle.X = Application.GetRealWidth(81);
- btnTitle.Y = Application.GetRealHeight(58);
+ btnTitle.Y = Application.GetRealHeight(58 + 16);
btnTitle.Text = titleText;
frameTable.AddChidren(btnTitle);
}
//鍒楄〃鎺т欢
this.listView = new VerticalListControl();
- listView.Height = frameTable.Height;
- if (rowCount == 5)
- {
- //杩炲甫鏍囬,鍙兘鏄剧ず5琛�
- listView.Height = frameTable.Height - Application.GetRealHeight(RowHeight);
- }
+ listView.Radius = (uint)Application.GetRealHeight(17);
if (titleText != null)
{
//鎷ユ湁鏍囬
listView.Y = Application.GetRealHeight(RowHeight);
+ listView.Height = frameTable.Height - Application.GetRealHeight(RowHeight);
}
- listView.Radius = frameTable.Radius;
+ else
+ {
+ //娌℃湁鏍囬
+ listView.Height = frameTable.Height;
+ }
frameTable.AddChidren(listView);
-
- //涓夎褰㈠浘鏍�
- var btnTriangle = new PicViewControl(31, 15);
- btnTriangle.X = Application.GetRealWidth(980);
- btnTriangle.Y = Application.GetRealHeight(159);
- btnTriangle.UnSelectedImagePath = "Item/UpperTriangle.png";
- this.AddChidren(btnTriangle);
}
#endregion
@@ -120,20 +131,22 @@
#region 鈻� 娣诲姞鑿滃崟___________________________
/// <summary>
- /// 娣诲姞鑿滃崟琛�
+ /// 娣诲姞鑿滃崟琛�(UI濂囪懇鍙樻洿浜�,鏆楄壊鍥剧墖涓洪�変腑,榛戣壊鍥剧墖涓洪潪閫変腑)
/// </summary>
/// <param name="TextValue">鏄剧ず鐨勬枃瀛�</param>
- /// <param name="unSelectPic">鍥剧墖</param>
- /// <param name="selectPic">鍥剧墖</param>
+ /// <param name="selectPic">鍥剧墖(鏆楄壊鍥剧墖)</param>
+ /// <param name="unSelectPic">鍥剧墖(榛戣壊鍥剧墖)</param>
/// <param name="action">鍗曞嚮鑿滃崟鎵ц鐨勪簨浠�</param>
/// <param name="closeOnClick">鍗曞嚮鐨勬椂鍊欙紝鍏抽棴鑿滃崟</param>
- public void AddRowMenu(string TextValue, string unSelectPic, string selectPic, Action action, bool closeOnClick = true)
+ 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;
@@ -148,39 +161,43 @@
btnLine.X = Application.GetRealWidth(81);
}
- if (listView.ChildrenCount == 1)
- {
- //绗竴涓彍鍗曢粯璁よ缃负閫夋嫨鐘舵��
- this.SetRowSelectStatu(rowFrame, true);
- this.oldRowFrame = rowFrame;
- }
- else
- {
- //鍏朵粬鑿滃崟涓虹伆鑹�
- btnIcon.IsSelected = false;
- btnText.TextColor = UserCenterColor.Current.TextGrayColor1;
- }
+ //鍒濆鐘舵�佸叏涓洪潪閫変腑鐘舵��
+ this.SetRowSelectStatu(rowFrame, false);
- //閫夋嫨鐘舵��
+ bool happenMove = false;
+ //閫夋嫨鐘舵��(閲嶅啓搴曞眰鏁堟灉)
rowFrame.SelectStatuEvent += (statu) =>
{
- //false涓烘帶浠惰嚜韬嚜鍔ㄦ墽琛�,杩欓噷涓嶉渶瑕佽繕鍘�
+ //false涓虹姸鎬佽繕鍘�,浣嗘槸鐘舵�佽繕鍘熸斁鍦ㄩ紶鏍囧脊璧蜂簨浠堕噷闈�
if (statu == true)
{
//璁剧疆涓洪�夋嫨鐘舵��
this.SetRowSelectStatu(rowFrame, true);
- this.oldRowFrame = rowFrame;
+ 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
@@ -204,16 +221,30 @@
var btnText = (NormalViewControl)frame.GetChildren(1);
if (btnText != null)
{
- btnText.TextColor = select == true ? UserCenterColor.Current.TextColor1 : UserCenterColor.Current.TextGrayColor1;
+ btnText.TextColor = select == true ? UserCenterColor.Current.TextGrayColor1 : UserCenterColor.Current.TextColor1;
+ btnText.IsBold = !select;
}
- //鍓嶅洖閫夋嫨鐨勮彍鍗曚负null,鎴栬�呮槸鐩稿悓鐨勪笢瑗�,鍒欎笉澶勭悊
- if (this.oldRowFrame == null || this.oldRowFrame.MainKeys == frame.MainKeys)
- {
- return;
- }
+ }
- //鍓嶅洖閫夋嫨鐨勮杩樺師
- this.SetRowSelectStatu(this.oldRowFrame, false);
+ #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