using Shared; using HDL_ON.UI.CSS; using System; using System.Collections.Generic; namespace HDL_ON.Stan { /// <summary> /// åšæˆä¸€ä¸ªRowLayout型的FrameLayout(底层的高度为44) /// </summary> public class FrameRowControl : FrameLayoutStatuControl { #region â– å˜é‡å£°æ˜Ž___________________________ /// <summary> /// æ¤æŽ§ä»¶çš„è¯†åˆ«ä¸»é”®(自定义设置的) /// </summary> public string MainKeys = string.Empty; /// <summary> /// å·¦åç§»é‡,åªé’ˆå¯¹å†…置控件有效(这是一个真实值,默认ä¸åç§»ã€‚æ£æ•°ä¸ºå‘å³åç§»,负数为å‘å·¦åç§») /// </summary> public int LeftOffset = 0; /// <summary> /// å³åç§»é‡,åªé’ˆå¯¹å†…置控件有效(这是一个真实值,默认ä¸åç§»ã€‚æ£æ•°ä¸ºå‘å³åç§»,负数为å‘å·¦åç§») /// </summary> public int RightOffset = 0; /// <summary> /// å·¦è¾¹å›¾æ ‡æŽ§ä»¶çš„å¤§å° /// </summary> private int leftIconSize = 0; /// <summary> /// å³è¾¹å›¾æ ‡æŽ§ä»¶çš„å¤§å° /// </summary> private int rightIconSize = 0; /// <summary> /// 底线控件 /// </summary> private NormalViewControl btnBottomLine = null; #endregion #region â– åˆå§‹åŒ–_____________________________ /// <summary> /// åšæˆä¸€ä¸ªRowLayout型的FrameLayout(底层的高度为44) /// </summary> /// <param name="i_ChidrenYaxis">åæŽ§ä»¶Yè½´åç§»é‡(ã€åˆ—表控件的rowSpace/2】å³å¯,䏿‡‚默认为0å³å¯)</param> public FrameRowControl(int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis) { this.Height = HdlControlResourse.ListViewRowHeight; this.Width = Application.CurrentWidth; } #endregion #region â– æ·»åŠ åº•çº¿___________________________ /// <summary> /// <para>æ·»åŠ åº•çº¿(å¦‚æžœå·¦è¾¹æœ‰å›¾æ ‡ï¼Œåˆ™å…ˆæ·»åŠ å›¾æ ‡ï¼Œå†æ·»åŠ åº•çº¿)</para> /// <para>å®ƒçš„é•¿åº¦ä¸ºï¼šå½“å‰æŽ§ä»¶å®½åº¦-å·¦å³å›ºå®šé—´è·-左边图片宽度(如果有)-å³è¾¹çš„åç§»é‡</para> /// </summary> public virtual NormalViewControl AddBottomLine() { if (this.btnBottomLine != null) { //å·²ç»æ·»åŠ äº†åº•çº¿ return btnBottomLine; } int lineWidth = this.Width - HdlControlResourse.XXLeft * 2 - LeftOffset + RightOffset; int XX = HdlControlResourse.XXLeft + LeftOffset; if (leftIconSize > 0) { lineWidth = lineWidth - leftIconSize - Application.GetRealWidth(12); XX = XX + leftIconSize + Application.GetRealWidth(12); } this.btnBottomLine = new NormalViewControl(lineWidth, HdlControlResourse.BottomLineHeight, false); btnBottomLine.X = XX; btnBottomLine.Y = this.Height - HdlControlResourse.BottomLineHeight; btnBottomLine.BackgroundColor = CSS_Color.DividingLineColor; base.AddChidren(btnBottomLine); return btnBottomLine; } /// <summary> /// 手动移除底线(有些时候需è¦è¿™ç§ç‰¹æ®Šæ•ˆæžœ) /// </summary> public void RemoveBottomLine() { for (int i = 0; i < this.ChildrenCount; i++) { var myView = this.GetChildren(i); //这里是底线的高度和Yè½´ if (myView == null || myView.Height != HdlControlResourse.BottomLineHeight || myView.Y != this.Height - HdlControlResourse.BottomLineHeight) { continue; } //移除底线 myView.RemoveFromParent(); break; } } #endregion #region â– æ·»åŠ å·¦è¾¹Caption____________________ /// <summary> /// æ·»åŠ å·¦è¾¹Caption(å¦‚æžœæœ‰å›¾æ ‡ï¼Œåˆ™å…ˆæ·»åŠ å›¾æ ‡ï¼Œå†æ·»åŠ Caption) /// </summary> /// <param name="i_caption">内容</param> /// <param name="i_width">宽度</param> /// <param name="real">是å¦è®¡ç®—真实值</param> /// <returns></returns> public NormalViewControl AddLeftCaption(string i_caption, int i_width, bool real = true) { if (real == true) { i_width = Application.GetRealWidth(i_width); } var contr = this.AddLeftCaption(i_caption, i_width, this.Height, false); this.AddChidren(contr, ChidrenBindMode.BindEvent); if (chidrenYaxis != 0) { contr.Y += chidrenYaxis; } return contr; } /// <summary> /// æ·»åŠ å·¦è¾¹Caption,æ¤æ–¹æ³•ä¸ä¼šä¸»åŠ¨æ·»åŠ åˆ°çˆ¶æŽ§ä»¶ä¸(å¦‚æžœæœ‰å›¾æ ‡ï¼Œåˆ™å…ˆæ·»åŠ å›¾æ ‡ï¼Œå†æ·»åŠ Caption) /// </summary> /// <param name="i_caption">内容</param> /// <param name="i_width">宽度</param> /// <param name="i_height">高度</param> /// <param name="real">是å¦è®¡ç®—真实值</param> /// <returns></returns> public NormalViewControl AddLeftCaption(string i_caption, int i_width, int i_height, bool real = true) { int XX = HdlControlResourse.XXLeft + LeftOffset; if (this.leftIconSize > 0) { XX += this.leftIconSize + Application.GetRealWidth(12); } var btnCaption = new NormalViewControl(i_width, i_height, real); btnCaption.X = XX; //2021.03.18 整英文版,åŠ ä¸Šè‡ªåŠ¨æ¢è¡Œ btnCaption.IsMoreLines = true; btnCaption.Text = i_caption; return btnCaption; } #endregion #region â– æ·»åŠ å·¦è¾¹è¾“å…¥æ¡†_____________________ /// <summary> /// æ·»åŠ å·¦è¾¹è¾“å…¥æ¡†(å¦‚æžœæœ‰å›¾æ ‡ï¼Œåˆ™å…ˆæ·»åŠ å›¾æ ‡ï¼Œå†æ·»åŠ è¾“å…¥æ¡†) /// </summary> /// <param name="i_txtValue">åˆå§‹å†…容</param> /// <param name="i_width">宽度</param> /// <param name="real">是å¦è®¡ç®—真实值</param> /// <returns></returns> public TextInputControl AddLeftInput(string i_txtValue, int i_width, bool real = true) { if (real == true) { i_width = Application.GetRealWidth(i_width); } int XX = HdlControlResourse.XXLeft + LeftOffset; if (this.leftIconSize > 0) { XX += this.leftIconSize + Application.GetRealWidth(12); } var contr = new TextInputControl(i_width, this.Height, false); contr.Text = i_txtValue; contr.X = XX; this.AddChidren(contr, ChidrenBindMode.NotBind); if (chidrenYaxis != 0) { contr.Y += chidrenYaxis; } return contr; } #endregion #region â– æ·»åŠ å·¦è¾¹å›¾æ ‡_______________________ /// <summary> /// æ·»åŠ å·¦è¾¹å›¾æ ‡ /// </summary> /// <param name="i_Iconsize">å›¾æ ‡å¤§å°</param> /// <param name="i_IconPath">å›¾æ ‡åœ°å€</param> /// <returns></returns> public IconViewControl AddLeftIcon(int i_Iconsize, string i_IconPath = null) { var btnIcon = new IconViewControl(i_Iconsize); btnIcon.X = HdlControlResourse.XXLeft + LeftOffset; btnIcon.Gravity = Gravity.CenterVertical; if (i_IconPath != null) { btnIcon.UnSelectedImagePath = i_IconPath; } this.AddChidren(btnIcon, ChidrenBindMode.BindEvent); if (chidrenYaxis != 0) { btnIcon.Y += chidrenYaxis; } this.leftIconSize = btnIcon.IconSize; return btnIcon; } #endregion #region â– æ·»åŠ å‘å³çš„å›¾æ ‡_____________________ /// <summary> /// æ·»åŠ å‘å³çš„å›¾æ ‡ /// </summary> public IconViewControl AddRightArrow() { var btnRight = new IconViewControl(20); btnRight.Gravity = Gravity.CenterVertical; btnRight.X =this.Width - btnRight.IconSize - HdlControlResourse.XXLeft + RightOffset; btnRight.UnSelectedImagePath = "Public/Right.png"; this.AddChidren(btnRight, ChidrenBindMode.BindEvent); if (chidrenYaxis != 0) { btnRight.Y += chidrenYaxis; } this.rightIconSize = btnRight.Width; return btnRight; } /// <summary> /// æ·»åŠ æœ€å³è¾¹çš„空白图片控件 /// </summary> /// <param name="i_width">控件空度(éžçœŸå®žå€¼)</param> /// <param name="i_height">控件高度(éžçœŸå®žå€¼)</param> /// <returns></returns> public MostRightIconControl AddMostRightEmptyIcon(int i_width, int i_height) { //è¿™æ˜¯ä¸€ä¸ªç¬¦åˆæŽ§ä»¶ var btnContr = new MostRightIconControl(i_width, i_height); btnContr.Height = this.Height; int XX = this.Width - this.GetPictrueRealSize(i_width) - HdlControlResourse.XXLeft; btnContr.X = XX - (btnContr.Width - this.GetPictrueRealSize(i_width)) / 2; this.AddChidren(btnContr, ChidrenBindMode.NotBind); btnContr.InitControl(); //å¤åˆæŽ§ä»¶éœ€è¦ç‰¹æ®Šå¤„ç† this.ChangedChidrenBindMode(btnContr, ChidrenBindMode.BindEvent); if (RightOffset != 0) { btnContr.X += RightOffset; } this.rightIconSize = this.GetPictrueRealSize(i_width); if (chidrenYaxis != 0) { btnContr.btnIcon.Y += chidrenYaxis; } return btnContr; } #endregion #region â– æ·»åŠ å³è¾¹çš„å¼€å…³å›¾æ ‡_________________ /// <summary> /// æ·»åŠ å³è¾¹çš„å¼€å…³å›¾æ ‡ /// </summary> /// <returns></returns> public MostRightIconControl AddMostRightSwitchIcon() { var btnSwitch = this.AddMostRightEmptyIcon(36, 36); this.ChangedChidrenBindMode(btnSwitch, ChidrenBindMode.NotBind); btnSwitch.UnSelectedImagePath = "Public/Switch_2.png"; btnSwitch.SelectedImagePath = "Public/SwitchOn_2.png"; return btnSwitch; } #endregion #region â– æ·»åŠ æœ€å³çš„æ˜¾ç¤ºæ–‡æœ¬_________________ /// <summary> /// æ·»åŠ æœ€å³çš„æ˜¾ç¤ºæ–‡æœ¬(如果å³è¾¹æœ‰å›¾æ ‡çš„è¯,å…ˆæ·»åŠ å›¾æ ‡åŽ,冿·»åŠ è¿™ä¸ªæ–‡æœ¬) /// </summary> /// <param name="i_text"></param> /// <param name="i_width"></param> /// <param name="real"></param> /// <returns></returns> public NormalViewControl AddMostRightView(string i_text, int i_width, bool real = true) { if (real == true) { i_width = Application.GetRealWidth(i_width); } var btnContr = AddMostRightView(i_text, i_width, this.Height, false); this.AddChidren(btnContr, ChidrenBindMode.BindEvent); if (chidrenYaxis != 0) { btnContr.Y += chidrenYaxis; } return btnContr; } /// <summary> /// æ·»åŠ æœ€å³çš„æ˜¾ç¤ºæ–‡æœ¬,æ¤æ–¹æ³•ä¸ä¼šä¸»åŠ¨æ·»åŠ åˆ°çˆ¶æŽ§ä»¶ä¸(如果å³è¾¹æœ‰å›¾æ ‡çš„è¯,å…ˆæ·»åŠ å›¾æ ‡åŽ,冿·»åŠ è¿™ä¸ªæ–‡æœ¬) /// </summary> /// <param name="i_caption">内容</param> /// <param name="i_width">宽度</param> /// <param name="i_height">高度</param> /// <param name="real">是å¦è®¡ç®—真实值</param> /// <returns></returns> public NormalViewControl AddMostRightView(string i_text, int i_width, int i_height, bool real = true) { if (real == true) { i_width = Application.GetRealWidth(i_width); i_height = Application.GetRealHeight(i_height); } var btnContr = new NormalViewControl(i_width, i_height, false); if (rightIconSize != 0) { //行的宽度å‡åŽ»æœ€å³è¾¹é—´è·,å†åŠ ä¸Šåç§»é‡,å†å‡åŽ»æœ€å³è¾¹çš„图片宽度,å†å‡åŽ»å›¾ç‰‡ä¸Žæ–‡å—的间è·,最åŽå‡åŽ»è‡ªèº«çš„å®½åº¦ btnContr.X = this.Width - HdlControlResourse.XXLeft + RightOffset - rightIconSize - Application.GetRealWidth(12) - i_width; } else { //行的宽度å‡åŽ»æœ€å³è¾¹é—´è·,å†åŠ ä¸Šåç§»é‡,最åŽå‡åŽ»è‡ªèº«çš„å®½åº¦ btnContr.X = this.Width - HdlControlResourse.XXLeft + RightOffset - i_width; } btnContr.Height = i_height; btnContr.TextAlignment = TextAlignment.CenterRight; btnContr.TextColor = CSS_Color.PromptingColor1; btnContr.Text = i_text; btnContr.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; //2021.03.18 整英文版,åŠ ä¸Šè‡ªåŠ¨æ¢è¡Œ btnContr.IsMoreLines = true; return btnContr; } #endregion #region â– æ·»åŠ ä¸Šéƒ¨çš„æ˜¾ç¤ºæ–‡æœ¬_________________ /// <summary> /// æ·»åŠ ä¸Šéƒ¨çš„æ˜¾ç¤ºæ–‡æœ¬(å¦‚æžœæœ‰å›¾æ ‡ï¼Œåˆ™å…ˆæ·»åŠ å›¾æ ‡ï¼Œå†æ·»åŠ æ–‡æœ¬) /// </summary> /// <param name="i_caption">内容</param> /// <param name="i_width">宽度</param> /// <param name="real">是å¦è®¡ç®—真实值</param> /// <returns></returns> public NormalViewControl AddTopView(string i_caption, int i_width, bool real = true) { if (real == true) { i_width = Application.GetRealWidth(i_width); } var contr = this.AddLeftCaption(i_caption, i_width, Application.GetRealHeight(21), false); contr.TextSize = CSS_FontSize.SubheadingFontSize; //å½“æŒ‡å®šå®žé™…åæ ‡æ—¶,这里需è¦çš„åç§»é‡ä¸º2å€ contr.Y = Application.GetRealHeight(4) + this.chidrenYaxis * 2; this.AddChidren(contr, ChidrenBindMode.BindEvent); return contr; } #endregion #region â– æ·»åŠ ä¸‹éƒ¨çš„æ˜¾ç¤ºæ–‡æœ¬_________________ /// <summary> /// æ·»åŠ ä¸‹éƒ¨çš„æ˜¾ç¤ºæ–‡æœ¬(å¦‚æžœæœ‰å›¾æ ‡ï¼Œåˆ™å…ˆæ·»åŠ å›¾æ ‡ï¼Œå†æ·»åŠ æ–‡æœ¬) /// </summary> /// <param name="i_caption">内容</param> /// <param name="i_width">宽度</param> /// <param name="real">是å¦è®¡ç®—真实值</param> /// <returns></returns> public NormalViewControl AddBottomView(string i_caption, int i_width, bool real = true) { if (real == true) { i_width = Application.GetRealWidth(i_width); } var contr = this.AddLeftCaption(i_caption, i_width, Application.GetRealHeight(17), false); //å½“æŒ‡å®šå®žé™…åæ ‡æ—¶,这里需è¦çš„åç§»é‡ä¸º2å€ contr.Y = Application.GetRealHeight(25) + this.chidrenYaxis * 2; contr.TextSize = CSS_FontSize.PromptFontSize_FirstLevel; contr.TextColor = CSS_Color.PromptingColor1; this.AddChidren(contr, ChidrenBindMode.BindEvent); return contr; } #endregion } }