gxc
2020-01-10 c0021397eeb8335d6d1f20990c71533c3d94e7af
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/FrameLayoutControls/FrameLayoutControl.cs
@@ -24,6 +24,10 @@
        /// </summary>
        public bool UseClickStatu = true;
        /// <summary>
        /// 能否点击
        /// </summary>
        public bool CanClick = true;
        /// <summary>
        /// 原来的背景色
        /// </summary>
        private uint oldBackColor = 0;
@@ -35,6 +39,13 @@
        /// 子控件Y轴偏移量(共通定义而已)
        /// </summary>
        public int chidrenYaxis = 0;
        /// <summary>
        /// 圆角度
        /// </summary>
        public int RadiusEx
        {
            set { this.Radius = (uint)Application.GetRealHeight(value); }
        }
        #endregion
@@ -50,7 +61,7 @@
            this.MouseUpEventHandler += ChildrenUpEvent;
            this.MouseDownEventHandler += ChildrenDownEvent;
        }
        }
        #endregion
@@ -63,14 +74,21 @@
        /// <param name="chidrenBindMode">变更的绑定模式</param>
        public void ChangedChidrenBindMode(View view, ChidrenBindMode chidrenBindMode)
        {
            if (view is Button)
            if (view is ButtonBase)
            {
                //子控件移除事件
                Button button = (Button)view;
                button.MouseUpEventHandler -= ChildrenUpEvent;
                ButtonBase button = (ButtonBase)view;
                button.ButtonClickEvent -= ChildrenUpEvent;
                button.MouseDownEventHandler -= ChildrenDownEvent;
                this.BindChidrenEvent(view, chidrenBindMode);
            }
            else if (view is ImageView)
            {
                view.MouseUpEventHandler -= ChildrenUpEvent;
                view.MouseDownEventHandler -= ChildrenDownEvent;
                this.BindChidrenEvent(view, chidrenBindMode);
            }
            else if (view is ViewGroup)
            {
@@ -82,11 +100,11 @@
                    {
                        break;
                    }
                    if (myView is Button)
                    if (myView is ButtonBase)
                    {
                        //子控件移除事件
                        Button button = (Button)myView;
                        button.MouseUpEventHandler -= ChildrenUpEvent;
                        ButtonBase button = (ButtonBase)myView;
                        button.ButtonClickEvent -= ChildrenUpEvent;
                        button.MouseDownEventHandler -= ChildrenDownEvent;
                    }
                }
@@ -105,17 +123,30 @@
        /// <param name="chidrenBindMode"></param>
        private void BindChidrenEvent(View view, ChidrenBindMode chidrenBindMode)
        {
            if (view is Button && chidrenBindMode != ChidrenBindMode.NotBind)
            if (chidrenBindMode == ChidrenBindMode.NotBind)
            {
                return;
            }
            if (view is ButtonBase)
            {
                //为子控件添加事件
                Button button = (Button)view;
                button.MouseUpEventHandler -= ChildrenUpEvent;
                ButtonBase button = (ButtonBase)view;
                button.ButtonClickEvent -= ChildrenUpEvent;
                button.MouseDownEventHandler -= ChildrenDownEvent;
                button.MouseUpEventHandler += ChildrenUpEvent;
                button.ButtonClickEvent += ChildrenUpEvent;
                button.MouseDownEventHandler += ChildrenDownEvent;
            }
            else if (view is ViewGroup && chidrenBindMode != ChidrenBindMode.NotBind)
            else if (view is ImageView)
            {
                //自身也添加事件
                view.MouseUpEventHandler -= ChildrenUpEvent;
                view.MouseDownEventHandler -= ChildrenDownEvent;
                view.MouseUpEventHandler += ChildrenUpEvent;
                view.MouseDownEventHandler += ChildrenDownEvent;
            }
            else if (view is ViewGroup)
            {
                //为子控件添加事件
                ViewGroup groupContr = (ViewGroup)view;
@@ -126,14 +157,14 @@
                    {
                        break;
                    }
                    if (myView is Button)
                    if (myView is ButtonBase)
                    {
                        //为子控件添加事件
                        Button button = (Button)myView;
                        button.MouseUpEventHandler -= ChildrenUpEvent;
                        ButtonBase button = (ButtonBase)myView;
                        button.ButtonClickEvent -= ChildrenUpEvent;
                        button.MouseDownEventHandler -= ChildrenDownEvent;
                        button.MouseUpEventHandler += ChildrenUpEvent;
                        button.ButtonClickEvent += ChildrenUpEvent;
                        button.MouseDownEventHandler += ChildrenDownEvent;
                    }
                }
@@ -163,7 +194,6 @@
            //绑定子控件事件
            this.BindChidrenEvent(view, chidrenBindMode);
        }
        #endregion
@@ -177,7 +207,7 @@
        /// <param name="e">E.</param>
        private void ChildrenDownEvent(object sender, MouseEventArgs e)
        {
            if (this.UseClickStatu == false)
            if (this.UseClickStatu == false|| this.CanClick == false)
            {
                return;
            }
@@ -191,8 +221,29 @@
        /// <param name="e">E.</param>
        private void ChildrenUpEvent(object sender, MouseEventArgs e)
        {
            //调用委托
            ButtonClickEvent?.Invoke(sender, e);
            if (this.CanClick == false)
            {
                //不允许点击
                return;
            }
            if (sender is FrameLayoutControl)
            {
                //LOG出力
                this.WriteLog();
            }
            try
            {
                //调用委托
                ButtonClickEvent?.Invoke(sender, e);
            }
            catch (Exception ex)
            {
                //出现未知错误
                var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError));
                alert.Show();
                //Log出力
                HdlLogLogic.Current.WriteLog(ex);
            }
        }
        #endregion
@@ -247,7 +298,7 @@
            //设置选择状态
            this.SetClickSelectStatu();
            new System.Threading.Thread(() =>
            HdlThreadLogic.Current.RunThread(() =>
            {
                System.Threading.Thread.Sleep(waiTime);
                Application.RunOnMainThread(() =>
@@ -255,8 +306,7 @@
                    //设置不选择状态
                    this.SetClickNotSelectStatu();
                });
            })
            { IsBackground = true }.Start();
            });
        }
        /// <summary>
@@ -280,5 +330,40 @@
        }
        #endregion
        #region ■ Log出力____________________________
        /// <summary>
        /// 该控件所属的界面名字
        /// </summary>
        private string formName = null;
        /// <summary>
        /// Log出力
        /// </summary>
        private void WriteLog()
        {
            if (formName == null)
            {
                formName = string.Empty;
                View myView = this.Parent;
                for (; ; )
                {
                    if (myView == null)
                    {
                        break;
                    }
                    else if (myView is CommonFormBase)
                    {
                        formName = ((CommonFormBase)myView).FormID;
                        break;
                    }
                    myView = myView.Parent;
                }
            }
            HdlLogLogic.Current.WriteLog(1, formName + ".FrameLayoutControl 被点击");
        }
        #endregion
    }
}