xm
2020-07-21 9a4b76398009cf76c508d61f7e48fb6f5cb7ac2d
ZigbeeApp/Shared/Phone/Device/CommonForm/LeftIconButtonRow.cs
New file
@@ -0,0 +1,180 @@
using System;
using Shared.Common;
namespace Shared.Phone.Device.CommonForm
{
    public class LeftIconButtonRow: FrameLayout
    {
        #region ◆ 变量__________________________
        /// <summary>
        /// 图片
        /// </summary>
        public Button IconButton;
        /// <summary>
        /// 标题
        /// </summary>
        public Button TitleButton;
        /// <summary>
        /// 下划线
        /// </summary>
        public FrameLayout Line;
        /// <summary>
        /// 点击事件
        /// </summary>
        public Action<LeftIconButtonRow, MouseEventArgs> ButtonClickEvent;
        /// <summary>
        /// ClickBtn
        /// </summary>
        public Button ClickBtn;
        /// <summary>
        /// v_Selected
        /// </summary>
        private bool v_Selected;
        public bool IsSelected
        {
            set
            {
                v_Selected = value;
                try
                {
                    SetStatu(v_Selected);
                }
                catch { };
            }
            get
            {
                return v_Selected;
            }
        }
        #endregion
        public LeftIconButtonRow(int width = 449, int height = 150, int x = 0, int y = 0)
        {
            X = x;
            Y = y;
            Width = Application.GetRealWidth(width);
            Height = Application.GetRealHeight(height);
        }
        #region ◆ 初始化__________________________
        /// <summary>
        /// Init
        /// </summary>
        /// <param name="iconPath">Icon path.</param>
        /// <param name="iconSelectedPath">Icon selected path.</param>
        /// <param name="title">Title.</param>
        public void Init(string iconPath, string iconSelectedPath, string title, bool hadLine = true)
        {
            IconButton = new Button()
            {
                X = Application.GetRealWidth(80),
                Height = UserCenter.HdlControlLogic.Current.GetPictrueRealSize(80),
                Width = UserCenter.HdlControlLogic.Current.GetPictrueRealSize(80),
                UnSelectedImagePath = iconPath,
                SelectedImagePath = iconSelectedPath,
                Gravity = Gravity.CenterVertical,
                Tag = this.Tag
            };
            AddChidren(IconButton);
            TitleButton = new Button()
            {
                X = Application.GetRealWidth(173),
                Height = Application.GetRealHeight(80),
                Width = Application.GetRealWidth(220),
                TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
                SelectedTextColor = ZigbeeColor.Current.GXCTextBlackColor,
                Text = title,
                TextAlignment = TextAlignment.CenterLeft,
                Gravity = Gravity.CenterVertical,
                Tag = this.Tag,
                TextSize=14
            };
            AddChidren(TitleButton);
            Line = new FrameLayout()
            {
                X = Application.GetRealWidth(80),
                Y = this.Height - 1,
                Width = Application.GetRealWidth(369),
                Height = 1,
                BackgroundColor = Common.ZigbeeColor.Current.GXCGrayLineColor2
            };
            if (hadLine)
            {
                AddChidren(Line);
            }
            IconButton.MouseUpEventHandler += Button_MouseUpEventHandler;
            TitleButton.MouseUpEventHandler += Button_MouseUpEventHandler;
        }
        #endregion
        #region ◆ 选中状态__________________________
        /// <summary>
        /// 设置状态
        /// </summary>
        /// <param name="statu"></param>
        private void SetStatu(bool statu)
        {
            IconButton.IsSelected = statu;
            TitleButton.IsSelected = statu;
            TitleButton.IsBold = statu;
        }
        /// <summary>
        /// 选中
        /// </summary>
        public void SetSelectedStatu()
        {
            SetStatu(true);
        }
        /// <summary>
        /// 不选中
        /// </summary>
        public void SetUnSelectedStatu()
        {
            SetStatu(false);
        }
        /// <summary>
        /// HidenLine
        /// </summary>
        /// <param name="statu"></param>
        public void HidenLine(bool statu)
        {
            Line.Visible = !statu;
        }
        /// <summary>
        /// 设置标题颜色
        /// </summary>
        /// <param name="color"></param>
        /// <param name="selectedColor"></param>
        public void SetTitleColor(uint color,uint selectedColor)
        {
            TitleButton.TextColor = color;
            TitleButton.SelectedTextColor = selectedColor;
        }
        #endregion
        #region ◆ 点击事件_________________________
        /// <summary>
        /// 点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_MouseUpEventHandler(object sender, MouseEventArgs e)
        {
            try
            {
                this.ButtonClickEvent?.Invoke(this, e);
            }
            catch (Exception ex)
            {
            }
        }
        #endregion
    }
}