From b3e96fce4cc01113128ddf8e0a18fc19594a9e56 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 05 十二月 2019 18:38:30 +0800 Subject: [PATCH] 一个新的版本 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/ButtonBase.cs | 199 +++++++++++++++++++++++++++---------------------- 1 files changed, 111 insertions(+), 88 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/ButtonBase.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/ButtonBase.cs index 6c3fb2b..42798c2 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/ButtonBase.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/ButtonBase.cs @@ -32,17 +32,22 @@ } /// <summary> - /// 鎺т欢鐨勭偣鍑讳簨浠�(姝や簨浠惰璁ゅ彲涓烘墽琛屾寜閽寜涓嬩簨浠讹紝鍙桟anClick灞炴�ф帶鍒�) + /// 鏄惁鏄暱鎸夌姸鎬� + /// </summary> + private bool isLongClick = false; + + /// <summary> + /// 鎺т欢鐨勭偣鍑讳簨浠�(鑷畾涔夊皝瑁呬簨浠�,姝や簨浠惰璁ゅ彲涓烘墽琛屾寜閽寜涓嬩簨浠�,鍙桟anClick灞炴�ф帶鍒�) /// </summary> public Action<Button, MouseEventArgs> ButtonClickEvent = null; /// <summary> - /// 搴曢儴闃村奖鎺т欢1 + /// (鈽呭綋鍓嶄笉瑕佷娇鐢ㄢ槄)鎺т欢鐨勯暱鎸変簨浠�,褰撲簨浠朵负null鏃�,浠h〃闀挎寜缁撴潫(鑷畾涔夊皝瑁呬簨浠�,姝や簨浠惰璁ゅ彲涓烘墽琛屾寜閽暱鎸変簨浠�,鍙桟anClick灞炴�ф帶鍒�) /// </summary> - private Button btnBottomShadowView1 = null; + public Action<Button, MouseEventArgs> ButtonLongClickEvent = null; /// <summary> - /// 搴曢儴闃村奖鎺т欢2 + /// 鎺т欢鐨勬寜涓嬩簨浠�(鑷畾涔夊皝瑁呬簨浠�,姝や簨浠惰璁ゅ彲涓烘墽琛屾寜閽寜涓嬩簨浠�,鍙桟anClick灞炴�ф帶鍒�) /// </summary> - private Button btnBottomShadowView2 = null; + public Action<Button, MouseEventArgs> ButtonDownClickEvent = null; #endregion @@ -61,6 +66,10 @@ //鐐瑰嚮浜嬩欢 this.MouseUpEventHandler += ButtonBase_MouseUpEventHandler; + //鎸変笅浜嬩欢 + this.MouseDownEventHandler += ButtonBase_MouseDownEventHandler; + //闀挎寜浜嬩欢 + this.MouseLongEventHandler += ButtonBase_MouseLongEventHandler; } /// <summary> @@ -133,11 +142,94 @@ if (CanClick == true) { //Log鍑哄姏 - this.WriteLog(); + this.WriteLog(0); try { - this.ButtonClickEvent?.Invoke(this, e); + if (this.isLongClick == false) + { + this.ButtonClickEvent(this, e); + } + else if (ButtonLongClickEvent != null) + { + //闀挎寜缁撴潫 + this.ButtonLongClickEvent(this, null); + } + } + catch (Exception ex) + { + //鍑虹幇鏈煡閿欒 + var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError)); + alert.Show(); + //Log鍑哄姏 + HdlLogLogic.Current.WriteLog(ex); + } + } + //鐘舵�佽繕鍘� + this.isLongClick = false; + } + + #endregion + + #region 鈻� 鎸変笅浜嬩欢___________________________ + + /// <summary> + /// 鎸変笅浜嬩欢 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void ButtonBase_MouseDownEventHandler(object sender, MouseEventArgs e) + { + //杩樺師鐘舵�� + this.isLongClick = false; + + if (CanClick == false || this.ButtonDownClickEvent == null) + { + //涓嶈兘鐐瑰嚮 + return; + } + + try + { + this.ButtonDownClickEvent(this, e); + } + catch (Exception ex) + { + //鍑虹幇鏈煡閿欒 + var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnKnownError)); + alert.Show(); + //Log鍑哄姏 + HdlLogLogic.Current.WriteLog(ex); + } + } + + #endregion + + #region 鈻� 闀挎寜浜嬩欢___________________________ + + /// <summary> + /// 闀挎寜浜嬩欢 + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void ButtonBase_MouseLongEventHandler(object sender, MouseEventArgs e) + { + //闀挎寜鐘舵�� + this.isLongClick = true; + + if (ButtonLongClickEvent == null) + { + this.MouseLongEventHandler -= ButtonBase_MouseLongEventHandler; + return; + } + if (CanClick == true) + { + //Log鍑哄姏 + this.WriteLog(1); + + try + { + this.ButtonLongClickEvent(this, e); } catch (Exception ex) { @@ -173,21 +265,14 @@ #region 鈻� 涓�鑸柟娉昣__________________________ /// <summary> - /// 閲嶇疆鍗曞嚮浜嬩欢(姝ゆ搷浣滃鎵樹細鍙榥ull) - /// </summary> - public void ResetClickEvent() - { - ButtonClickEvent = null; - this.MouseUpEventHandler -= this.ButtonBase_MouseUpEventHandler; - this.MouseUpEventHandler += this.ButtonBase_MouseUpEventHandler; - } - - /// <summary> /// 鎺т欢鎽ф瘉 /// </summary> public override void RemoveFromParent() { ButtonClickEvent = null; + ButtonDownClickEvent = null; + ButtonLongClickEvent = null; + base.RemoveFromParent(); } @@ -241,75 +326,6 @@ return Application.GetRealWidth(realWidth + 20); } - /// <summary> - /// 娣诲姞搴曢儴闃村奖鐗规晥(纭繚鎷ユ湁鐖舵帶浠跺悗鎵嶈皟鐢�) - /// </summary> - /// <param name="view">涓哄摢涓帶浠舵坊鍔犻槾褰辩壒鏁�,鐪佺暐鏃�,涓哄綋鍓嶆帶浠舵坊鍔�</param> - /// <param name="average">娣诲姞鐨勯槾褰辩壒鏁堟槸鍚︽寜骞冲潎鍊艰缃珮瀹藉害</param> - public void AddBottomShadow(View view = null, bool average = false) - { - //闇�瑕佹墿澶х殑楂樺害 - int heightValue = 21; - //闇�瑕佹墿澶х殑瀹藉害 - int widthValue = 15; - //鏈�澶ч珮搴� - int maxHeight = 0; - if (average == false) - { - heightValue = Application.GetRealHeight(heightValue); - widthValue = Application.GetRealWidth(widthValue); - maxHeight = Application.GetRealHeight(460); - } - else - { - heightValue = Application.GetMinRealAverage(heightValue); - widthValue = Application.GetMinRealAverage(widthValue); - maxHeight = Application.GetMinRealAverage(460); - } - if (view == null) - { - //鐪佺暐鏃�,鎸囧畾涓哄綋鍓嶆帶浠� - view = this; - } - //鍏堢Щ闄� - this.btnBottomShadowView1?.RemoveFromParent(); - this.btnBottomShadowView2?.RemoveFromParent(); - - int realHeight = view.Height + heightValue * 2; - if (realHeight <= maxHeight) - { - //闃村奖鎺т欢 - this.btnBottomShadowView1 = new Button(); - btnBottomShadowView1.UnSelectedImagePath = "Item/BottomShadow.png"; - btnBottomShadowView1.Height = realHeight; - btnBottomShadowView1.Width = view.Width + widthValue * 2; - btnBottomShadowView1.X = view.X - widthValue; - btnBottomShadowView1.Y = view.Y; - view.Parent.AddChidren(btnBottomShadowView1); - view.BringToFront(); - } - else - { - //瓒呰繃鏈�澶ф椂,鐗规畩澶勭悊 - this.btnBottomShadowView1 = new Button(); - btnBottomShadowView1.UnSelectedImagePath = "Item/BottomShadow.png"; - btnBottomShadowView1.Height = view.Height - heightValue * 2; - btnBottomShadowView1.Width = view.Width + widthValue * 2; - btnBottomShadowView1.X = view.X - widthValue; - btnBottomShadowView1.Y = view.Y + heightValue * 2; - view.Parent.AddChidren(btnBottomShadowView1); - - this.btnBottomShadowView2 = new Button(); - btnBottomShadowView2.UnSelectedImagePath = "Item/BottomShadow.png"; - btnBottomShadowView2.Height = maxHeight; - btnBottomShadowView2.Width = view.Width + widthValue * 2; - btnBottomShadowView2.X = view.X - widthValue; - btnBottomShadowView2.Y = view.Bottom - maxHeight + heightValue * 2; - view.Parent.AddChidren(btnBottomShadowView2); - view.BringToFront(); - } - } - #endregion #region 鈻� Log鍑哄姏____________________________ @@ -326,7 +342,7 @@ /// <summary> /// Log鍑哄姏 /// </summary> - private void WriteLog() + private void WriteLog(int div) { if (formName == null) { @@ -357,7 +373,14 @@ controlName = this.UnSelectedImagePath; } } - HdlLogLogic.Current.WriteLog(1, formName + "鐨刐" + controlName + "]鎸夐敭琚偣鍑�"); + if (div == 0) + { + HdlLogLogic.Current.WriteLog(1, formName + "鐨刐" + controlName + "]鎸夐敭琚偣鍑�"); + } + else + { + HdlLogLogic.Current.WriteLog(1, formName + "鐨刐" + controlName + "]鎸夐敭琚暱鎸�"); + } } #endregion -- Gitblit v1.8.0