黄学彪
2020-04-28 e22fdb94322e6cec38e5e4a9aec13d431a133fde
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/FrameLayoutControls/FrameLayoutStatuControl.cs
File was renamed from ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/FrameLayoutControls/FrameLayoutControl.cs
@@ -7,21 +7,21 @@
    /// <summary>
    /// 做成一个点击后能够显示点击状态的控件(基层控件)
    /// </summary>
    public class FrameLayoutControl : FrameLayout
    public class FrameLayoutStatuControl : FrameLayoutBase
    {
        #region ■ 变量声明___________________________
        /// <summary>
        /// 单击弹起事件
        /// </summary>
        public Action<object, MouseEventArgs> ButtonClickEvent;
        /// <summary>
        /// 状态设置的事件(会重载底层效果)
        /// </summary>
        /// <summary>
        /// 单击弹起事件
        /// </summary>
        public Action<object, MouseEventArgs> ButtonClickEvent;
        /// <summary>
        /// 状态设置的事件(会重载底层效果)
        /// </summary>
        public Action<bool> SelectStatuEvent;
        /// <summary>
        /// 是否启用点亮功能(默认启用)
        /// </summary>
        /// </summary>
        public bool UseClickStatu = true;
        /// <summary>
        /// 能否点击
@@ -29,11 +29,11 @@
        public bool CanClick = true;
        /// <summary>
        /// 原来的背景色
        /// </summary>
        private uint oldBackColor = 0;
        /// </summary>
        private uint oldBackColor = 0;
        /// <summary>
        /// 当前是否已经处于选择状态
        /// </summary>
        /// </summary>
        private bool IsSelectStatu = false;
        /// <summary>
        /// 子控件Y轴偏移量(共通定义而已)
@@ -47,47 +47,47 @@
            set { this.Radius = (uint)Application.GetRealHeight(value); }
        }
        #endregion
        #endregion
        #region ■ 初始化_____________________________
        /// <summary>
        /// 做成一个点击后能够显示点击状态的控件
        /// </summary>
        /// <param name="i_ChidrenYaxis">子控件Y轴偏移量(真实值,有些界面需要这种特殊操作)</param>
        public FrameLayoutControl(int i_ChidrenYaxis = 0)
        /// </summary>
        /// <param name="i_ChidrenYaxis">子控件Y轴偏移量(真实值,有些界面需要这种特殊操作)</param>
        public FrameLayoutStatuControl(int i_ChidrenYaxis = 0)
        {
            this.chidrenYaxis = i_ChidrenYaxis;
            this.MouseUpEventHandler += ChildrenUpEvent;
            this.MouseDownEventHandler += ChildrenDownEvent;
            this.MouseDownEventHandler += ChildrenDownEvent;
        }
        #endregion
        #endregion
        #region ■ 绑定事件___________________________
        #region ■ 绑定事件___________________________
        /// <summary>
        /// 变更子控件的绑定模式
        /// </summary>
        /// <param name="view">子控件</param>
        /// <param name="chidrenBindMode">变更的绑定模式</param>
        /// <param name="chidrenBindMode">变更的绑定模式</param>
        public void ChangedChidrenBindMode(View view, ChidrenBindMode chidrenBindMode)
        {
            if (view is ButtonBase)
            if (view is ButtonBase)
            {
                //子控件移除事件
                ButtonBase button = (ButtonBase)view;
                button.ButtonClickEvent -= ChildrenUpEvent;
                button.MouseDownEventHandler -= ChildrenDownEvent;
                this.BindChidrenEvent(view, chidrenBindMode);
                button.MouseDownEventHandler -= ChildrenDownEvent;
                this.BindChidrenEvent(view, chidrenBindMode);
            }
            else if (view is ImageView)
            {
                view.MouseUpEventHandler -= ChildrenUpEvent;
                view.MouseDownEventHandler -= ChildrenDownEvent;
                view.MouseDownEventHandler -= ChildrenDownEvent;
                this.BindChidrenEvent(view, chidrenBindMode);
            }
            else if (view is ViewGroup)
@@ -114,20 +114,20 @@
                this.BindChidrenEvent(view, chidrenBindMode);
            }
        }
        }
        /// <summary>
        /// 绑定子控件事件(如果是复合控件,在初始化完成后,调用ChangedChidrenBindMode)
        /// </summary>
        /// <param name="view"></param>
        /// <param name="chidrenBindMode"></param>
        /// <param name="chidrenBindMode"></param>
        private void BindChidrenEvent(View view, ChidrenBindMode chidrenBindMode)
        {
            if (chidrenBindMode == ChidrenBindMode.NotBind)
            {
                return;
            }
            if (view is ButtonBase)
            if (view is ButtonBase)
            {
                //为子控件添加事件
                ButtonBase button = (ButtonBase)view;
@@ -135,7 +135,7 @@
                button.MouseDownEventHandler -= ChildrenDownEvent;
                button.ButtonClickEvent += ChildrenUpEvent;
                button.MouseDownEventHandler += ChildrenDownEvent;
                button.MouseDownEventHandler += ChildrenDownEvent;
            }
            else if (view is ImageView)
            {
@@ -181,52 +181,52 @@
        #region ■ 添加子控件_________________________
        /// <summary>
        /// 添加子控件
        /// </summary>
        /// <param name="view">子控件</param>
        /// <param name="chidrenBindMode">绑定模式</param>
        public void AddChidren(View view, ChidrenBindMode chidrenBindMode = ChidrenBindMode.BindAll)
        /// <summary>
        /// 添加子控件
        /// </summary>
        /// <param name="view">子控件</param>
        /// <param name="chidrenBindMode">绑定模式</param>
        public void AddChidren(View view, ChidrenBindMode chidrenBindMode = ChidrenBindMode.BindAll)
        {
            this.oldBackColor = this.BackgroundColor;
            base.AddChidren(view);
            //绑定子控件事件
            this.BindChidrenEvent(view, chidrenBindMode);
            this.BindChidrenEvent(view, chidrenBindMode);
        }
        #endregion
        #region ■ 控件事件___________________________
        /// <summary>
        /// 点击按下事件(点亮)
        /// </summary>
        /// <param name="sender">Sender.</param>
        /// <param name="e">E.</param>
        private void ChildrenDownEvent(object sender, MouseEventArgs e)
        /// <summary>
        /// 点击按下事件(点亮)
        /// </summary>
        /// <param name="sender">Sender.</param>
        /// <param name="e">E.</param>
        private void ChildrenDownEvent(object sender, MouseEventArgs e)
        {
            if (this.UseClickStatu == false|| this.CanClick == false)
            if (this.UseClickStatu == false || this.CanClick == false)
            {
                return;
            }
            this.StartSelectStatuAppeal(ControlCommonResourse.StatuChangedWaitTime);
            this.StartSelectStatuAppeal(ControlCommonResourse.StatuChangedWaitTime);
        }
        /// <summary>
        /// 点击松开事件
        /// </summary>
        /// <param name="sender">Sender.</param>
        /// <param name="e">E.</param>
        private void ChildrenUpEvent(object sender, MouseEventArgs e)
        /// <summary>
        /// 点击松开事件
        /// </summary>
        /// <param name="sender">Sender.</param>
        /// <param name="e">E.</param>
        private void ChildrenUpEvent(object sender, MouseEventArgs e)
        {
            if (this.CanClick == false)
            {
                //不允许点击
                return;
            }
            if (sender is FrameLayoutControl)
            if (sender is FrameLayoutStatuControl)
            {
                //LOG出力
                this.WriteLog();
@@ -235,49 +235,49 @@
            {
                //调用委托
                ButtonClickEvent?.Invoke(sender, e);
            }
            catch (Exception ex)
            }
            catch (Exception ex)
            {
                //出现未知错误
                var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
                alert.Show();
                //Log出力
                HdlLogLogic.Current.WriteLog(ex);
            }
            }
        }
        #endregion
        #endregion
        #region ■ 单击状态显示_______________________
        #region ■ 单击状态显示_______________________
        /// <summary>
        /// 设置单击后结束的状态
        /// </summary>
        public void SetClickNotSelectStatu()
        /// <summary>
        /// 设置单击后结束的状态
        /// </summary>
        public void SetClickNotSelectStatu()
        {
            this.IsSelectStatu = false;
            this.IsSelectStatu = false;
            if (this.SelectStatuEvent != null)
            {
                this.SelectStatuEvent(false);
                return;
            }
            this.BackgroundColor = this.oldBackColor;
        }
        /// <summary>
        /// 设置单击时的状态
        /// </summary>
        public void SetClickSelectStatu()
            this.BackgroundColor = this.oldBackColor;
        }
        /// <summary>
        /// 设置单击时的状态
        /// </summary>
        public void SetClickSelectStatu()
        {
            this.IsSelectStatu = true;
            this.IsSelectStatu = true;
            if (this.SelectStatuEvent != null)
            {
                this.SelectStatuEvent(true);
                return;
            }
            this.BackgroundColor = UserCenterColor.Current.RowSelectBackColor;
            this.BackgroundColor = UserCenterColor.Current.RowSelectBackColor;
        }
        #endregion
@@ -287,7 +287,7 @@
        /// <summary>
        /// 强制实施控件选中状态的特效
        /// </summary>
        /// <param name="waiTime"></param>
        /// <param name="waiTime"></param>
        public void StartSelectStatuAppeal(int waiTime)
        {
            if (this.IsSelectStatu == true)
@@ -311,7 +311,7 @@
        /// <summary>
        /// 移除底层控件自身的单击事件
        /// </summary>
        /// </summary>
        public void RemoveBaseClickEvent()
        {
            this.MouseUpEventHandler -= ChildrenUpEvent;
@@ -320,7 +320,7 @@
        /// <summary>
        /// 控件摧毁
        /// </summary>
        /// </summary>
        public override void RemoveFromParent()
        {
            this.ButtonClickEvent = null;