From da3634e011bbda29cf4e1c168997b780fe795b20 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期三, 13 五月 2020 09:05:23 +0800
Subject: [PATCH] 优化新风模块和新风面板的测试功能,请合并代码
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/ButtonBase.cs | 408 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 408 insertions(+), 0 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
new file mode 100755
index 0000000..098ffaa
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/BaseCommonControl/Base/ButtonBase.cs
@@ -0,0 +1,408 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter
+{
+ /// <summary>
+ /// Botton鐨勬渶鍒濆師鍨�(涓嶅缓璁慨鏀瑰拰鐩存帴浣跨敤):鏍囧噯瀛椾綋鍜岄鑹诧紝鏂囧瓧鍚戝乏闈犻綈,14鍙峰瓧
+ /// </summary>
+ public class ButtonBase : Button
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 璁剧疆鑳藉惁瑙︾偣鍑讳簨浠�
+ /// </summary>
+ private bool m_CanClick = true;
+ /// <summary>
+ /// 璁剧疆鑳藉惁瑙︾偣鍑讳簨浠�
+ /// </summary>
+ public bool CanClick
+ {
+ get { return m_CanClick; }
+ set
+ {
+ m_CanClick = value;
+ //鑳藉鐐瑰嚮,鍒欐樉绀烘病鏈夌偣鍑昏繃鐨勭姸鎬�
+ if (m_CanClick == true) { this.SetNotClickStatu(); }
+ //涓嶈兘鐐瑰嚮,鍒欐樉绀哄凡缁忕偣鍑讳簡鐨勭姸鎬�
+ else { this.SetClickStatu(); }
+ }
+ }
+ /// <summary>
+ /// 鍦嗚搴�
+ /// </summary>
+ public int RadiusEx
+ {
+ set { this.Radius = (uint)Application.GetRealHeight(value); }
+ }
+
+ /// <summary>
+ /// 鐐瑰嚮鐨勫潗鏍�
+ /// </summary>
+ private System.Drawing.Point downPoint = new System.Drawing.Point();
+
+ /// <summary>
+ /// 鎺т欢鐨勭偣鍑讳簨浠�(鑷畾涔夊皝瑁呬簨浠�,姝や簨浠惰璁ゅ彲涓烘墽琛屾寜閽寜涓嬩簨浠�,鍙桟anClick灞炴�ф帶鍒�)
+ /// </summary>
+ public Action<Button, MouseEventArgs> ButtonClickEvent = null;
+ /// <summary>
+ /// 鎺т欢鐨勬寜涓嬩簨浠�(鑷畾涔夊皝瑁呬簨浠�,姝や簨浠惰璁ゅ彲涓烘墽琛屾寜閽寜涓嬩簨浠�,鍙桟anClick灞炴�ф帶鍒�)
+ /// </summary>
+ public Action<Button, MouseEventArgs> ButtonDownClickEvent = null;
+ /// <summary>
+ /// 鎺т欢瑙﹀彂绉诲姩鐨勪簨浠�(鑷韩鎷ユ湁绠楁硶,褰撶Щ鍔ㄥ灏戝儚绱犲悗,瑙﹀彂浜嬩欢,娉ㄦ剰,璇ヤ簨浠跺彲鑳戒細棰戠箒鐨勮Е鍙�)
+ /// </summary>
+ public Action ButtonHappenMoveEvent = null;
+
+ #endregion
+
+ #region 鈻� 閲嶅啓褰摜鐨勫睘鎬____________________
+
+ /// <summary>
+ /// 閲嶅啓Text灞炴��
+ /// </summary>
+ public new string Text
+ {
+ //鍏堣繖涔堝紕鍏堝惂
+ get { return base.Text == null ? string.Empty : base.Text; }
+ set
+ {
+ base.Text = value == null ? string.Empty : value;
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// Botton鐨勬渶鍒濆師鍨�(涓嶅缓璁慨鏀瑰拰鐩存帴浣跨敤):鏍囧噯瀛椾綋鍜岄鑹诧紝鏂囧瓧鍚戝乏闈犻綈,14鍙峰瓧
+ /// </summary>
+ public ButtonBase()
+ {
+ //娴嬭瘯锛屽叏浣撴寜閽负14鍙峰瓧
+ this.TextSize = 14;
+
+ this.TextColor = UserCenterColor.Current.TextColor1;
+ this.TextAlignment = TextAlignment.CenterLeft;
+
+ //鐐瑰嚮浜嬩欢
+ this.MouseUpEventHandler += ButtonBase_MouseUpEventHandler;
+ //鎸変笅浜嬩欢
+ this.MouseDownEventHandler += ButtonBase_MouseDownEventHandler;
+ //绉诲姩浜嬩欢
+ this.MouseMoveEventHandler += ButtonBase_MouseMoveEventHandler;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠跺ぇ灏�(涓嶄互骞冲潎鍊艰繘琛岀湡瀹炴暟鍊艰绠�)
+ /// </summary>
+ /// <param name="i_Width">瀹藉害</param>
+ /// <param name="i_Height">楂樺害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public void InitSize(int i_Width, int i_Height, bool real = true)
+ {
+ if (real == true)
+ {
+ i_Width = Application.GetRealWidth(i_Width);
+ i_Height = Application.GetRealHeight(i_Height);
+ }
+ this.Height = i_Height;
+ this.Width = i_Width;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栨帶浠跺ぇ灏�(涓嶄互骞冲潎鍊艰繘琛岀湡瀹炴暟鍊艰绠�)
+ /// </summary>
+ /// <param name="i_Width">瀹藉害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public void InitSize(int i_Width, bool real = false)
+ {
+ if (real == true)
+ {
+ i_Width = Application.GetRealWidth(i_Width);
+ }
+
+ this.Height = ControlCommonResourse.NormalControlHeight;
+ this.Width = i_Width;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栧浘鏍囨帶浠跺ぇ灏�(浠ュ钩鍧囧�艰繘琛岀湡瀹炴暟鍊艰绠�)
+ /// </summary>
+ /// <param name="i_Width">瀹藉害</param>
+ /// <param name="i_Height">楂樺害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public void InitIconSize(int i_Width, int i_Height, bool real = true)
+ {
+ if (real == true)
+ {
+ i_Width = this.GetPictrueRealSize(i_Width);
+ i_Height = this.GetPictrueRealSize(i_Height);
+ }
+
+ this.Height = i_Height;
+ this.Width = i_Width;
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栧浘鐗囨帶浠跺ぇ灏�
+ /// </summary>
+ /// <param name="i_Width">瀹藉害</param>
+ /// <param name="i_Height">楂樺害</param>
+ /// <param name="real">鏄惁璁$畻鐪熷疄鍊�</param>
+ public void InitPictrueSize(int i_Width, int i_Height, bool real = true)
+ {
+ if (real == true)
+ {
+ i_Width = HdlControlLogic.Current.GetPictrueRealSize(i_Width);
+ i_Height = HdlControlLogic.Current.GetPictrueRealSize(i_Height);
+ }
+
+ this.Height = i_Height;
+ this.Width = i_Width;
+ }
+
+ #endregion
+
+ #region 鈻� 鐐瑰嚮浜嬩欢___________________________
+
+ /// <summary>
+ /// 鐐瑰嚮浜嬩欢
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="e"></param>
+ private void ButtonBase_MouseUpEventHandler(object sender, MouseEventArgs e)
+ {
+ if (ButtonClickEvent == null)
+ {
+ this.MouseUpEventHandler -= ButtonBase_MouseUpEventHandler;
+ return;
+ }
+ if (CanClick == true)
+ {
+ //Log鍑哄姏
+ this.WriteLog(0);
+
+ try
+ {
+ this.ButtonClickEvent(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_MouseDownEventHandler(object sender, MouseEventArgs e)
+ {
+ //璁板綍璧峰綋鍓嶇偣鍑荤殑鍧愭爣
+ downPoint.X = (int)e.X;
+ downPoint.Y = (int)e.Y;
+
+ 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_MouseMoveEventHandler(object sender, MouseEventArgs e)
+ {
+ if (this.ButtonHappenMoveEvent == null)
+ {
+ this.MouseMoveEventHandler -= ButtonBase_MouseMoveEventHandler;
+ return;
+ }
+ int value = (int)e.X - this.downPoint.X;
+ if (value >= 30 || value <= -30)
+ {
+ //瑙﹀彂绉诲姩浜嬩欢
+ this.ButtonHappenMoveEvent();
+ return;
+ }
+ value = (int)e.Y - this.downPoint.Y;
+ if (value >= 30 || value <= -30)
+ {
+ //瑙﹀彂绉诲姩浜嬩欢
+ this.ButtonHappenMoveEvent();
+ return;
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 璁剧疆鐐瑰嚮鐘舵�乢______________________
+
+ /// <summary>
+ /// 璁剧疆鐐瑰嚮鍚庣殑鐘舵��(姝ゆ柟娉曠敱鍚勮嚜鎺т欢杩涜閲嶈浇)
+ /// </summary>
+ public virtual void SetClickStatu()
+ {
+ }
+
+ /// <summary>
+ /// 璁剧疆闈炵偣鍑诲悗鐨勭姸鎬�(姝ゆ柟娉曠敱鍚勮嚜鎺т欢杩涜閲嶈浇)
+ /// </summary>
+ public virtual void SetNotClickStatu()
+ {
+ }
+
+ #endregion
+
+ #region 鈻� 涓�鑸柟娉昣__________________________
+
+ /// <summary>
+ /// 鎺т欢鎽ф瘉
+ /// </summary>
+ public override void RemoveFromParent()
+ {
+ ButtonClickEvent = null;
+ ButtonDownClickEvent = null;
+
+ if (this.Parent != null)
+ {
+ base.RemoveFromParent();
+ }
+ }
+
+ /// <summary>
+ /// Y杞撮噸缃�(鐪熷疄鏁板��,娌℃湁鐖跺鍣ㄦ棤鏁�)
+ /// </summary>
+ /// <param name="alignment">涓婁笅瀵归綈鏂瑰紡</param>
+ /// <param name="Space">涓婁笅涓ら儴鍒嗙殑闂磋窛</param>
+ public void ReSetYaxis(UViewAlignment alignment, int Space = 0)
+ {
+ if (this.Parent == null)
+ {
+ return;
+ }
+ //Y杞撮噸缃�
+ this.Y = HdlControlLogic.Current.GetControlChidrenYaxis(this.Parent.Height, this.Height, alignment, Space);
+ }
+
+ /// <summary>
+ /// 鏍规嵁鏂囨湰,璁$畻瀹冨疄闄呯殑瀹藉害
+ /// </summary>
+ /// <returns></returns>
+ public int GetRealWidthByText()
+ {
+ if (string.IsNullOrEmpty(this.Text) == true) { return Application.GetRealWidth(25); }
+#if Android
+ //闇�瑕佸鍔犱竴涓宸��
+ return this.GetTextWidth() + Application.GetRealWidth(12);
+#endif
+#if iOS
+ //闇�瑕佸鍔犱竴涓宸��
+ return this.GetTextWidth() + Application.GetRealWidth(25);
+#endif
+ }
+
+ /// <summary>
+ /// 璁$畻鍥剧墖鐨勭湡瀹為珮瀹藉害
+ /// </summary>
+ /// <param name="i_size"></param>
+ /// <returns></returns>
+ public int GetPictrueRealSize(int i_size)
+ {
+ return HdlControlLogic.Current.GetPictrueRealSize(i_size);
+ }
+
+ #endregion
+
+ #region 鈻� Log鍑哄姏____________________________
+
+ /// <summary>
+ /// 璇ユ帶浠舵墍灞炵殑鐣岄潰鍚嶅瓧
+ /// </summary>
+ private string formName = null;
+ /// <summary>
+ /// 鎺т欢鍚嶅瓧
+ /// </summary>
+ private string controlName = null;
+
+ /// <summary>
+ /// Log鍑哄姏
+ /// </summary>
+ private void WriteLog(int div)
+ {
+ 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;
+ }
+ if (string.IsNullOrEmpty(this.Text) == false)
+ {
+ //杩欎釜鎺т欢鐨勬枃鏈�
+ controlName = this.Text;
+ }
+ else
+ {
+ //濡傛灉娌℃湁鏂囨湰鐨勮瘽,瀹冨簲璇ユ槸涓�寮犲浘鐗�
+ controlName = this.UnSelectedImagePath;
+ }
+ }
+ if (div == 0)
+ {
+ HdlLogLogic.Current.WriteLog(1, formName + "鐨刐" + controlName + "]鎸夐敭琚偣鍑�");
+ }
+ else
+ {
+ HdlLogLogic.Current.WriteLog(1, formName + "鐨刐" + controlName + "]鎸夐敭琚暱鎸�");
+ }
+ }
+
+ #endregion
+ }
+}
--
Gitblit v1.8.0