From 52005ed57f3f7bc796fdd1a878e4f298a126f1e8 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期二, 29 十月 2019 16:48:47 +0800
Subject: [PATCH] 2019.10.29-3
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/TopRightMenuControl.cs | 186 +++++++++++++++++++++++++++++++++------------
1 files changed, 135 insertions(+), 51 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/TopRightMenuControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/TopRightMenuControl.cs
index 0a8b19e..fe4e545 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/TopRightMenuControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/CompoundControls/TopRightMenuControl.cs
@@ -12,13 +12,25 @@
#region 鈻� 鍙橀噺澹版槑___________________________
/// <summary>
- /// 鍒楄〃鎺т欢
+ /// 妗屽竷鎺т欢
/// </summary>
- private VerticalListControl listView = null;
+ private FrameLayout frameTable = null;
+ /// <summary>
+ /// 涓夎褰㈠浘鏍�
+ /// </summary>
+ private PicViewControl btnTriangle = null;
+ /// <summary>
+ /// 澶撮儴鍦嗚鎺т欢
+ /// </summary>
+ private NormalViewControl btnTopRadius = null;
+ /// <summary>
+ /// 搴曢儴鍦嗚鎺т欢
+ /// </summary>
+ private NormalViewControl btnBottomRadius = null;
/// <summary>
/// 鍓嶅洖閫夋嫨鐨勮
/// </summary>
- private FrameRowControl oldRowFrame = null;
+ private FrameLayoutControl oldRowFrame = null;
/// <summary>
/// 琛岄珮搴�
/// </summary>
@@ -26,11 +38,20 @@
/// <summary>
/// 琛屽搴�
/// </summary>
+ //private int RowWidth = 449;
private int RowWidth = 395;
/// <summary>
/// 琛屾暟
/// </summary>
private int RowCount = 0;
+ /// <summary>
+ /// 鑿滃崟璁℃暟
+ /// </summary>
+ private int menuCount = 0;
+ /// <summary>
+ /// 鍦嗚搴�
+ /// </summary>
+ private int tableRadius = Application.GetMinRealAverage(12);
#endregion
@@ -39,21 +60,22 @@
/// <summary>
/// 鍋氭垚涓�涓瓨鍦ㄤ簬鍙充笂瑙掔殑鑿滃崟鎺т欢
/// </summary>
+ /// <param name="frame">鐖跺鍣ㄦ帶浠�</param>
/// <param name="i_RowCount">涓�鍏辨湁鍑犺</param>
/// <param name="i_width">杩欎釜鑿滃崟鏈夊瀹�</param>
- /// <param name="titleText">鏍囬鏂囨湰(濡傛灉涓嶄负绌�,鑿滃崟妯″紡鍙樻洿涓烘嫢鏈夋爣棰樼殑妯″紡)</param>
- public TopRightMenuControl(int i_RowCount, int i_width = 395, string titleText = null)
+ public TopRightMenuControl(FrameLayout frame, int i_RowCount, int i_width = 395)
{
this.RowCount = i_RowCount;
this.RowWidth = i_width;
//鍒濆鍖栫敾闈㈢殑鎺т欢
- this.InitFormControl(titleText);
+ this.InitFormControl(frame);
}
/// <summary>
/// 鍒濆鍖栫敾闈㈢殑鎺т欢
/// </summary>
- private void InitFormControl(string titleText)
+ /// <param name="frame">鐖跺鍣ㄦ帶浠�</param>
+ private void InitFormControl(FrameLayout frame)
{
this.BackgroundColor = UserCenterColor.Current.DialogBackColor;
this.MouseUpEventHandler += (sender2, e2) =>
@@ -61,47 +83,41 @@
//鍏抽棴鑷韩
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;
//妗屽竷
- var frameTable = new FrameLayoutControl(false);
+ this.frameTable = new FrameLayout();
+ //frameTable.X = Application.GetRealWidth(596);
+ //frameTable.Y = Application.GetRealHeight(184);
frameTable.X = Application.GetRealWidth(662 - (RowWidth - 395));
frameTable.Y = Application.GetRealHeight(158 + 15 + 1);
frameTable.Width = Application.GetRealWidth(RowWidth);
- frameTable.Height = Application.GetRealHeight(RowHeight * rowCount);
+ frameTable.Height = Application.GetRealHeight(RowHeight * this.RowCount) + (this.RowCount - 1) * ControlCommonResourse.BottomLineHeight;
frameTable.BackgroundColor = UserCenterColor.Current.White;
- frameTable.BorderColor = UserCenterColor.Current.Transparent;
- frameTable.RadiusEx = 6;
+ frameTable.Radius = (uint)tableRadius / 2;
this.AddChidren(frameTable);
- if (titleText != null)
+ //澶撮儴鍦嗚鎺т欢
+ btnTopRadius = new NormalViewControl(frameTable.Width, tableRadius * 2, false);
+ btnTopRadius.Radius = (uint)tableRadius;
+ //btnTopRadius.BackgroundColor = UserCenterColor.Current.BlackBackGround;
+ frameTable.AddChidren(btnTopRadius);
+ if (RowCount == 1)
{
- var btnTitle = new NormalViewControl(frameTable.Width - Application.GetRealWidth(81), Application.GetRealHeight(58), false);
- btnTitle.X = Application.GetRealWidth(81);
- btnTitle.Y = Application.GetRealHeight(58);
- btnTitle.Text = titleText;
- frameTable.AddChidren(btnTitle);
+ btnTopRadius.BackgroundColor = UserCenterColor.Current.White;
}
-
- //鍒楄〃鎺т欢
- this.listView = new VerticalListControl();
- listView.Height = frameTable.Height;
- if (rowCount == 5 && titleText != null)
- {
- //杩炲甫鏍囬,鍙兘鏄剧ず5琛�
- listView.Height = frameTable.Height - Application.GetRealHeight(RowHeight);
- listView.Y = Application.GetRealHeight(RowHeight);
- }
- listView.Radius = frameTable.Radius;
- frameTable.AddChidren(listView);
+ //搴曢儴鍦嗚鎺т欢
+ btnBottomRadius = new NormalViewControl(frameTable.Width, tableRadius * 2, false);
+ btnBottomRadius.Y = frameTable.Height - tableRadius * 2;
+ btnBottomRadius.Radius = (uint)tableRadius;
+ btnBottomRadius.BackgroundColor = UserCenterColor.Current.White;
+ frameTable.AddChidren(btnBottomRadius);
//涓夎褰㈠浘鏍�
- var btnTriangle = new PicViewControl(31, 15);
+ btnTriangle = new PicViewControl(31, 15);
btnTriangle.X = Application.GetRealWidth(980);
- btnTriangle.Y = Application.GetRealHeight(159);
+ //btnTriangle.Y = Application.GetRealHeight(169);
+ btnTriangle.Y = Application.GetRealHeight(158);
btnTriangle.UnSelectedImagePath = "Item/UpperTriangle.png";
this.AddChidren(btnTriangle);
}
@@ -120,36 +136,72 @@
/// <param name="closeOnClick">鍗曞嚮鐨勬椂鍊欙紝鍏抽棴鑿滃崟</param>
public void AddRowMenu(string TextValue, string unSelectPic, string selectPic, Action action, bool closeOnClick = true)
{
- var rowFrame = new FrameRowControl();
- rowFrame.LeftOffset = Application.GetRealWidth(81) - ControlCommonResourse.XXLeft;
+ NormalViewControl btnLine = null;
+ if (menuCount > 0)
+ {
+ //鐢荤嚎
+ btnLine = new NormalViewControl(Application.GetRealWidth(RowWidth - 81), ControlCommonResourse.BottomLineHeight, false);
+ btnLine.X = Application.GetRealWidth(81);
+ btnLine.Y = Application.GetRealHeight(RowHeight * menuCount) + menuCount * ControlCommonResourse.BottomLineHeight;
+ btnLine.BackgroundColor = UserCenterColor.Current.ButtomLine;
+ frameTable.AddChidren(btnLine);
+ }
+ menuCount++;
+
+ var rowFrame = new FrameLayoutControl();
rowFrame.Height = Application.GetRealHeight(RowHeight);
- listView.AddChidren(rowFrame);
- rowFrame.MainKeys = listView.ChildrenCount.ToString();
+ rowFrame.Name = "Menu" + menuCount;
+ if (btnLine != null)
+ {
+ rowFrame.Y = btnLine.Bottom;
+ }
+ if (this.RowCount == 1)
+ {
+ //鍙湁涓�涓彍鍗�
+ rowFrame.Y = tableRadius;
+ rowFrame.Height = Application.GetRealHeight(RowHeight) - tableRadius * 2;
+ }
+ frameTable.AddChidren(rowFrame);
//鍥炬爣
- var btnIcon = rowFrame.AddLeftIcon(81);
+ var btnIcon = new IconViewControl(81);
+ btnIcon.X = Application.GetRealWidth(81);
+ btnIcon.Gravity = Gravity.CenterVertical;
btnIcon.UnSelectedImagePath = unSelectPic;
btnIcon.SelectedImagePath = selectPic;
+ rowFrame.AddChidren(btnIcon, ChidrenBindMode.BindEventOnly);
//鏄剧ず鏂囧瓧
- var btnText = rowFrame.AddLeftCaption(TextValue, RowWidth - 173);
+ var btnText = new NormalViewControl(RowWidth - 173, 58, true);
btnText.X = Application.GetRealWidth(173);
- //搴曠嚎
- if (listView.ChildrenCount != this.RowCount)
+ btnText.Text = TextValue;
+ btnText.Gravity = Gravity.CenterVertical;
+ rowFrame.AddChidren(btnText, ChidrenBindMode.BindEventOnly);
+ if (menuCount > 1)
{
- var btnLine = rowFrame.AddBottomLine();
- btnLine.X = Application.GetRealWidth(81);
+ btnIcon.IsSelected = false;
+ btnText.TextColor = UserCenterColor.Current.TextGrayColor1;
}
- if (listView.ChildrenCount == 1)
+ if (this.RowCount == 1)
{
+ //濡傛灉鍙湁涓�涓彍鍗�
+ }
+ else if (menuCount == 1)
+ {
+ //澶氫釜鑿滃崟妯″紡鐨勭涓�涓彍鍗�
+ rowFrame.Y = tableRadius;
+ rowFrame.Height -= tableRadius;
+ btnIcon.Y -= tableRadius / 2;
+ btnText.Y -= tableRadius / 2;
//绗竴涓彍鍗曢粯璁よ缃负閫夋嫨鐘舵��
this.SetRowSelectStatu(rowFrame, true);
this.oldRowFrame = rowFrame;
}
- else
+ else if (menuCount == this.RowCount)
{
- //鍏朵粬鑿滃崟涓虹伆鑹�
- btnIcon.IsSelected = false;
- btnText.TextColor = UserCenterColor.Current.TextGrayColor1;
+ //澶氫釜鑿滃崟妯″紡鐨勬渶鍚庝竴涓彍鍗�
+ rowFrame.Height -= tableRadius;
+ btnIcon.Y += tableRadius / 2;
+ btnText.Y += tableRadius / 2;
}
//閫夋嫨鐘舵��
@@ -183,7 +235,7 @@
/// </summary>
/// <param name="frame">琛屾帶浠�</param>
/// <param name="select">閫夋嫨鐨勭姸鎬�</param>
- private void SetRowSelectStatu(FrameRowControl frame, bool select)
+ private void SetRowSelectStatu(FrameLayoutControl frame, bool select)
{
//鍥炬爣
var btnIcon = (IconViewControl)frame.GetChildren(0);
@@ -195,14 +247,46 @@
var btnText = (NormalViewControl)frame.GetChildren(1);
if (btnText != null)
{
+ //btnText.TextColor = select == true ? UserCenterColor.Current.TextColor3 : UserCenterColor.Current.TextColor1;
btnText.TextColor = select == true ? UserCenterColor.Current.TextColor1 : UserCenterColor.Current.TextGrayColor1;
}
+ //鑳屾櫙鑹�
+ //frame.BackgroundColor = select == true ? UserCenterColor.Current.BlackBackGround : UserCenterColor.Current.White;
+
+ if (this.RowCount == 1)
+ {
+ //濡傛灉鍙湁涓�涓彍鍗曠殑璇�
+ //this.btnTopRadius.BackgroundColor = UserCenterColor.Current.BlackBackGround;
+ //this.btnBottomRadius.BackgroundColor = UserCenterColor.Current.BlackBackGround;
+ return;
+ }
//鍓嶅洖閫夋嫨鐨勮彍鍗曚负null,鎴栬�呮槸鐩稿悓鐨勪笢瑗�,鍒欎笉澶勭悊
- if (this.oldRowFrame == null || this.oldRowFrame.MainKeys == frame.MainKeys)
+ if (this.oldRowFrame == null || this.oldRowFrame.Name == frame.Name)
{
return;
}
+ if (frame.Name == "Menu1")
+ {
+ //濡傛灉鐐瑰嚮鐨勬槸绗竴涓彍鍗曠殑璇�,鍙橀粦鑹�
+ //this.btnTopRadius.BackgroundColor = UserCenterColor.Current.BlackBackGround;
+ }
+ else
+ {
+ //鍙樺洖鐧借壊
+ //this.btnTopRadius.BackgroundColor = UserCenterColor.Current.White;
+ }
+
+ if (frame.Name == "Menu" + this.RowCount)
+ {
+ //濡傛灉鐐瑰嚮鐨勬槸鏈�鍚庝竴涓彍鍗曠殑璇�,鍙橀粦鑹�
+ //this.btnBottomRadius.BackgroundColor = UserCenterColor.Current.BlackBackGround;
+ }
+ else
+ {
+ //鍙樺洖鐧借壊
+ //this.btnBottomRadius.BackgroundColor = UserCenterColor.Current.White;
+ }
//鍓嶅洖閫夋嫨鐨勮杩樺師
this.SetRowSelectStatu(this.oldRowFrame, false);
}
--
Gitblit v1.8.0